Keep basic block offsets as construction-only metadata rather than storing them on every Executable. The validator now receives the offsets through a transient Rust FFI span, and the bytecode dump rebuilds block starts by scanning labels, terminators, and exception handler metadata. Drop the table from the bytecode cache format and bump the format version so old caches are rebuilt. This removes a field that was only used by validation and bytecode dump paths.
60 lines
1.5 KiB
Text
60 lines
1.5 KiB
Text
$80aea387 this-base-identifier.js:16:1
|
|
Registers: 10
|
|
Blocks: 3
|
|
Constants:
|
|
[0] = Undefined
|
|
|
|
block0:
|
|
[ 0] GetLexicalEnvironment dst:reg4
|
|
[ 8] GetGlobal dst:reg6, `get_from_this`
|
|
[ 20] Call dst:reg5, callee:reg6, this_value:Undefined, get_from_this
|
|
[ 40] GetGlobal dst:reg7, `set_on_this`
|
|
[ 58] Call dst:reg6, callee:reg7, this_value:Undefined, set_on_this
|
|
[ 78] Jump target:block2
|
|
|
|
block1:
|
|
[ 80] Catch dst:reg5
|
|
[ 88] SetLexicalEnvironment environment:reg4
|
|
[ 90] Mov2 dst1:reg7, src1:Undefined, dst2:reg8, src2:reg7
|
|
[ a8] End value:reg7
|
|
|
|
block2:
|
|
[ b0] Mov dst:reg5, src:Undefined
|
|
[ c0] GetGlobal dst:reg9, `chained_this_access`
|
|
[ d8] Call dst:reg7, callee:reg9, this_value:Undefined, chained_this_access
|
|
[ f8] Mov2 dst1:reg5, src1:reg7, dst2:reg7, src2:reg5
|
|
[ 110] End value:reg7
|
|
|
|
Exception handlers:
|
|
[ b0 .. 118] => handler block1
|
|
|
|
|
|
get_from_this$7b4d6173 this-base-identifier.js:5:5
|
|
Registers: 6
|
|
Blocks: 1
|
|
|
|
block0:
|
|
[ 0] GetById dst:reg5, base:this, `foo` (this.foo)
|
|
[ 20] Return value:reg5
|
|
|
|
|
|
set_on_this$1818839f this-base-identifier.js:9:14
|
|
Registers: 5
|
|
Blocks: 1
|
|
Constants:
|
|
[0] = Int32(1)
|
|
[1] = Undefined
|
|
|
|
block0:
|
|
[ 0] PutById base:this, `bar`, src:Int32(1), kind:Normal (this.bar)
|
|
[ 28] End value:Undefined
|
|
|
|
|
|
chained_this_access$4d4a3dab this-base-identifier.js:13:5
|
|
Registers: 7
|
|
Blocks: 1
|
|
|
|
block0:
|
|
[ 0] GetById dst:reg5, base:this, `a` (this.a)
|
|
[ 20] GetById dst:reg6, base:reg5, `b` (this.a.b)
|
|
[ 40] Return value:reg6
|