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.
26 lines
590 B
Text
26 lines
590 B
Text
$63c57e75 try-catch-completion-ordering.js:1:1
|
|
Registers: 8
|
|
Blocks: 3
|
|
Locals: e~0
|
|
Constants:
|
|
[0] = Undefined
|
|
[1] = Int32(42)
|
|
[2] = Null
|
|
|
|
block0:
|
|
[ 0] GetLexicalEnvironment dst:reg4
|
|
[ 8] Jump target:block2
|
|
|
|
block1:
|
|
[ 10] Catch dst:reg5
|
|
[ 18] SetLexicalEnvironment environment:reg4
|
|
[ 20] Mov3 dst1:e~0, src1:reg5, dst2:reg6, src2:Undefined, dst3:reg6, src3:Int32(42)
|
|
[ 40] Mov dst:reg7, src:reg6
|
|
[ 50] End value:reg7
|
|
|
|
block2:
|
|
[ 58] Mov dst:reg5, src:Undefined
|
|
[ 68] Throw src:Null
|
|
|
|
Exception handlers:
|
|
[ 58 .. 70] => handler block1
|