$8565e4c5 indexed-append-guards.js:16:1 Registers: 11 Blocks: 7 Constants: [0] = String("use strict") [1] = Int32(0) [2] = Int32(1) [3] = Undefined [4] = String("Indexed object append mutated") [5] = String("length") [6] = Bool(false) [7] = Int32(2) [8] = String("Array length changed") [9] = String("Array append mutated") block0: [ 0] GetGlobal dst:reg6, `Object` [ 10] GetById dst:reg7, base:reg6, `preventExtensions` (Object.preventExtensions) [ 28] NewObject dst:reg8 [ 38] ToPrimitiveWithStringHint dst:Int32(0), value:Int32(0) [ 48] PutByValue base:reg8, property:Int32(0), src:Int32(1), kind:Own [ 60] Call dst:reg5, callee:reg7, this_value:reg6, Object.preventExtensions, arguments:[reg8] [ 88] DynamicInitializeLexicalBinding `object`, src:reg5 [ 98] GetGlobal dst:reg7, `expect_type_error` [ a8] NewFunction dst:reg6, shared_function_data_index:0 [ c0] Call dst:reg5, callee:reg7, this_value:Undefined, expect_type_error, arguments:[reg6] [ e8] GetGlobal dst:reg7, `object` [ f8] GetByValue dst:reg6, base:reg7, property:Int32(1) (object[Int32(1)]) [ 110] StrictlyInequals dst:reg7, lhs:reg6, rhs:Undefined [ 120] Mov dst:reg6, src:Undefined [ 130] JumpFalse condition:reg7, target:block2 block1: [ 140] GetGlobal dst:reg9, `Error` [ 150] CallConstruct dst:reg8, callee:reg9, Error, arguments:[String("Indexed object append mutated")] [ 170] Throw src:reg8 block2: [ 178] NewPrimitiveArray dst:reg5, elements:[1, 2] [ 198] DynamicInitializeLexicalBinding `array`, src:reg5 [ 1a8] GetGlobal dst:reg7, `Object` [ 1b8] GetById dst:reg8, base:reg7, `defineProperty` (Object.defineProperty) [ 1d0] GetGlobal dst:reg9, `array` [ 1e0] NewObject dst:reg10 [ 1f0] InitObjectLiteralProperty object:reg10, `writable`, src:Bool(false), shape_cache_index:0, property_slot:0 [ 208] CacheObjectShape object:reg10 [ 218] Call dst:reg5, callee:reg8, this_value:reg7, Object.defineProperty, arguments:[reg9, String("length"), reg10] [ 248] GetGlobal dst:reg8, `expect_type_error` [ 258] NewFunction dst:reg7, shared_function_data_index:1 [ 270] Call dst:reg6, callee:reg8, this_value:Undefined, expect_type_error, arguments:[reg7] [ 298] GetGlobal dst:reg5, `array` [ 2a8] GetLength dst:reg8, base:reg5 (array.length) [ 2c0] StrictlyInequals dst:reg5, lhs:reg8, rhs:Int32(2) [ 2d0] Mov dst:reg8, src:Undefined [ 2e0] JumpFalse condition:reg5, target:block4 block3: [ 2f0] GetGlobal dst:reg10, `Error` [ 300] CallConstruct dst:reg7, callee:reg10, Error, arguments:[String("Array length changed")] [ 320] Throw src:reg7 block4: [ 328] GetGlobal dst:reg6, `array` [ 338] GetByValue dst:reg5, base:reg6, property:Int32(2) (array[Int32(2)]) [ 350] StrictlyInequals dst:reg6, lhs:reg5, rhs:Undefined [ 360] Mov dst:reg5, src:Undefined [ 370] JumpFalse condition:reg6, target:block6 block5: [ 380] GetGlobal dst:reg10, `Error` [ 390] CallConstruct dst:reg7, callee:reg10, Error, arguments:[String("Array append mutated")] [ 3b0] Throw src:reg7 block6: [ 3b8] End value:reg5 expect_type_error$fc915998 indexed-append-guards.js:4:5 Registers: 9 Blocks: 8 Locals: error~0, did_throw~1 Constants: [0] = Bool(false) [1] = Bool(true) [2] = Undefined [3] = String("Expected TypeError") block0: [ 0] GetLexicalEnvironment dst:reg4 [ 8] Mov dst:did_throw~1, src:Bool(false) [ 18] Jump target:block5 block1: [ 20] Catch dst:reg5 [ 28] SetLexicalEnvironment environment:reg4 [ 30] Mov dst:error~0, src:reg5 [ 40] GetGlobal dst:reg7, `TypeError` [ 50] InstanceOf dst:reg8, lhs:error~0, rhs:reg7 [ 60] Not dst:reg6, src:reg8 [ 70] JumpFalse condition:reg6, target:block3 block2: [ 80] Throw src:error~0 block3: [ 88] Mov dst:did_throw~1, src:Bool(true) block4: [ 98] Not dst:reg5, src:did_throw~1 [ a8] JumpIf condition:reg5, true_target:block6, false_target:block7 block5: [ b8] Call dst:reg5, callee:arg0, this_value:Undefined, callback [ d8] Jump target:block4 block6: [ e0] GetGlobal dst:reg8, `Error` [ f0] CallConstruct dst:reg6, callee:reg8, Error, arguments:[String("Expected TypeError")] [ 110] Throw src:reg6 block7: [ 118] End value:Undefined Exception handlers: [ b8 .. e0] => handler block1 $ec717972 indexed-append-guards.js:18:5 Registers: 6 Blocks: 1 Constants: [0] = Int32(1) [1] = Int32(2) [2] = Undefined block0: [ 0] GetGlobal dst:reg5, `object` [ 10] PutByValue base:reg5, property:Int32(1), src:Int32(2), kind:Normal (object[Int32(1)]) [ 28] End value:Undefined $01eb2052 indexed-append-guards.js:26:5 Registers: 8 Blocks: 1 Constants: [0] = Int32(3) [1] = Undefined block0: [ 0] GetGlobal dst:reg5, `array` [ 10] GetGlobal dst:reg6, `array` [ 20] GetLength dst:reg7, base:reg6 (array.length) [ 38] PutByValue base:reg5, property:reg7, src:Int32(3), kind:Normal (array[reg7]) [ 50] End value:Undefined