Store compact cache indexes in bytecode instructions instead of raw pointers to the executable cache vectors. This keeps the instruction stream independent from heap addresses and removes pointer fixups when materializing cached bytecode. Resolve the mutable cache pointers at execution time from the current Executable. Bytecode test expectations are updated for the smaller cache operands and resulting instruction offsets.
40 lines
1.1 KiB
Text
40 lines
1.1 KiB
Text
$1ffda051 update-member-expression.js:13:1
|
|
Registers: 9
|
|
Blocks: 1
|
|
Constants:
|
|
[0] = Undefined
|
|
|
|
block0:
|
|
[ 0] GetGlobal dst:reg6, `postfix_increment`
|
|
[ 10] NewObject dst:reg7
|
|
[ 20] Call dst:reg5, callee:reg6, this_value:Undefined, postfix_increment, arguments:[reg7]
|
|
[ 48] GetGlobal dst:reg7, `prefix_decrement`
|
|
[ 58] NewObject dst:reg8
|
|
[ 68] Call dst:reg6, callee:reg7, this_value:Undefined, prefix_decrement, arguments:[reg8]
|
|
[ 90] End value:reg6
|
|
|
|
|
|
postfix_increment$4c3d5f7c update-member-expression.js:6:14
|
|
Registers: 7
|
|
Blocks: 1
|
|
Constants:
|
|
[0] = Undefined
|
|
|
|
block0:
|
|
[ 0] GetById dst:reg5, base:arg0, `count` (obj.count)
|
|
[ 18] PostfixIncrement dst:reg6, src:reg5
|
|
[ 28] PutById base:arg0, `count`, src:reg5, kind:Normal
|
|
[ 48] End value:Undefined
|
|
|
|
|
|
prefix_decrement$f7e6cd12 update-member-expression.js:10:5
|
|
Registers: 6
|
|
Blocks: 1
|
|
Constants:
|
|
[0] = Undefined
|
|
|
|
block0:
|
|
[ 0] GetById dst:reg5, base:arg0, `count` (obj.count)
|
|
[ 18] Decrement dst:reg5
|
|
[ 20] PutById base:arg0, `count`, src:reg5, kind:Normal
|
|
[ 40] End value:Undefined
|