Tests stepping through wasm scripts with source maps
Got wasm script: wasm://wasm/9b4bf87e
Script sourceMapURL: abc
Requesting source for wasm://wasm/9b4bf87e...
Source retrieved without error: true
Setting breakpoint on offset 54 (on the setlocal before the call), url wasm://wasm/9b4bf87e
{
    columnNumber : 54
    lineNumber : 0
    scriptId : <scriptId>
}
Script wasm://wasm/9b4bf87e byte offset 54: Wasm opcode 0x21 (kExprLocalSet)
at wasm_B (0:54):
 - scope (module):
   -- skipped
 - scope (local):
   {"var0":4}
 - scope (wasm-expression-stack):
   {"0":3}
at (anonymous) (0:17):
 - scope (global):
   -- skipped
Debugger.stepInto called
Script wasm://wasm/9b4bf87e byte offset 56: Wasm opcode 0x10 (kExprCallFunction)
at wasm_B (0:56):
 - scope (module):
   -- skipped
 - scope (local):
   {"var0":3}
 - scope (wasm-expression-stack):
   {}
at (anonymous) (0:17):
 - scope (global):
   -- skipped
Debugger.stepInto called
Script wasm://wasm/9b4bf87e byte offset 38: Wasm opcode 0x01 (kExprNop)
at wasm_A (0:38):
 - scope (module):
   -- skipped
 - scope (local):
   {}
 - scope (wasm-expression-stack):
   {}
at wasm_B (0:56):
 - scope (module):
   -- skipped
 - scope (local):
   {"var0":3}
 - scope (wasm-expression-stack):
   {}
at (anonymous) (0:17):
 - scope (global):
   -- skipped
Debugger.stepOver called
Script wasm://wasm/9b4bf87e byte offset 39: Wasm opcode 0x01 (kExprNop)
at wasm_A (0:39):
 - scope (module):
   -- skipped
 - scope (local):
   {}
 - scope (wasm-expression-stack):
   {}
at wasm_B (0:56):
 - scope (module):
   -- skipped
 - scope (local):
   {"var0":3}
 - scope (wasm-expression-stack):
   {}
at (anonymous) (0:17):
 - scope (global):
   -- skipped
Debugger.stepOut called
Script wasm://wasm/9b4bf87e byte offset 58: Wasm opcode 0x0c (kExprBr)
at wasm_B (0:58):
 - scope (module):
   -- skipped
 - scope (local):
   {"var0":3}
 - scope (wasm-expression-stack):
   {}
at (anonymous) (0:17):
 - scope (global):
   -- skipped
Debugger.stepOut called
Script wasm://wasm/9b4bf87e byte offset 54: Wasm opcode 0x21 (kExprLocalSet)
at wasm_B (0:54):
 - scope (module):
   -- skipped
 - scope (local):
   {"var0":3}
 - scope (wasm-expression-stack):
   {"0":2}
at (anonymous) (0:17):
 - scope (global):
   -- skipped
Debugger.stepOver called
Script wasm://wasm/9b4bf87e byte offset 56: Wasm opcode 0x10 (kExprCallFunction)
at wasm_B (0:56):
 - scope (module):
   -- skipped
 - scope (local):
   {"var0":2}
 - scope (wasm-expression-stack):
   {}
at (anonymous) (0:17):
 - scope (global):
   -- skipped
Debugger.stepOver called
Script wasm://wasm/9b4bf87e byte offset 58: Wasm opcode 0x0c (kExprBr)
at wasm_B (0:58):
 - scope (module):
   -- skipped
 - scope (local):
   {"var0":2}
 - scope (wasm-expression-stack):
   {}
at (anonymous) (0:17):
 - scope (global):
   -- skipped
Debugger.resume called
Script wasm://wasm/9b4bf87e byte offset 54: Wasm opcode 0x21 (kExprLocalSet)
at wasm_B (0:54):
 - scope (module):
   -- skipped
 - scope (local):
   {"var0":2}
 - scope (wasm-expression-stack):
   {"0":1}
at (anonymous) (0:17):
 - scope (global):
   -- skipped
Debugger.stepInto called
Script wasm://wasm/9b4bf87e byte offset 56: Wasm opcode 0x10 (kExprCallFunction)
at wasm_B (0:56):
 - scope (module):
   -- skipped
 - scope (local):
   {"var0":1}
 - scope (wasm-expression-stack):
   {}
at (anonymous) (0:17):
 - scope (global):
   -- skipped
Debugger.stepInto called
Script wasm://wasm/9b4bf87e byte offset 38: Wasm opcode 0x01 (kExprNop)
at wasm_A (0:38):
 - scope (module):
   -- skipped
 - scope (local):
   {}
 - scope (wasm-expression-stack):
   {}
at wasm_B (0:56):
 - scope (module):
   -- skipped
 - scope (local):
   {"var0":1}
 - scope (wasm-expression-stack):
   {}
at (anonymous) (0:17):
 - scope (global):
   -- skipped
Debugger.stepOut called
Script wasm://wasm/9b4bf87e byte offset 58: Wasm opcode 0x0c (kExprBr)
at wasm_B (0:58):
 - scope (module):
   -- skipped
 - scope (local):
   {"var0":1}
 - scope (wasm-expression-stack):
   {}
at (anonymous) (0:17):
 - scope (global):
   -- skipped
Debugger.stepInto called
Script wasm://wasm/9b4bf87e byte offset 45: Wasm opcode 0x20 (kExprLocalGet)
at wasm_B (0:45):
 - scope (module):
   -- skipped
 - scope (local):
   {"var0":1}
 - scope (wasm-expression-stack):
   {}
at (anonymous) (0:17):
 - scope (global):
   -- skipped
Debugger.stepInto called
Script wasm://wasm/9b4bf87e byte offset 47: Wasm opcode 0x04 (kExprIf)
at wasm_B (0:47):
 - scope (module):
   -- skipped
 - scope (local):
   {"var0":1}
 - scope (wasm-expression-stack):
   {"0":1}
at (anonymous) (0:17):
 - scope (global):
   -- skipped
Debugger.stepInto called
Script wasm://wasm/9b4bf87e byte offset 49: Wasm opcode 0x20 (kExprLocalGet)
at wasm_B (0:49):
 - scope (module):
   -- skipped
 - scope (local):
   {"var0":1}
 - scope (wasm-expression-stack):
   {}
at (anonymous) (0:17):
 - scope (global):
   -- skipped
Debugger.stepInto called
Script wasm://wasm/9b4bf87e byte offset 51: Wasm opcode 0x41 (kExprI32Const)
at wasm_B (0:51):
 - scope (module):
   -- skipped
 - scope (local):
   {"var0":1}
 - scope (wasm-expression-stack):
   {"0":1}
at (anonymous) (0:17):
 - scope (global):
   -- skipped
Debugger.stepInto called
Script wasm://wasm/9b4bf87e byte offset 53: Wasm opcode 0x6b (kExprI32Sub)
at wasm_B (0:53):
 - scope (module):
   -- skipped
 - scope (local):
   {"var0":1}
 - scope (wasm-expression-stack):
   {"0":1,"1":1}
at (anonymous) (0:17):
 - scope (global):
   -- skipped
Debugger.stepInto called
Script wasm://wasm/9b4bf87e byte offset 54: Wasm opcode 0x21 (kExprLocalSet)
at wasm_B (0:54):
 - scope (module):
   -- skipped
 - scope (local):
   {"var0":1}
 - scope (wasm-expression-stack):
   {"0":0}
at (anonymous) (0:17):
 - scope (global):
   -- skipped
Debugger.stepInto called
Script wasm://wasm/9b4bf87e byte offset 56: Wasm opcode 0x10 (kExprCallFunction)
at wasm_B (0:56):
 - scope (module):
   -- skipped
 - scope (local):
   {"var0":0}
 - scope (wasm-expression-stack):
   {}
at (anonymous) (0:17):
 - scope (global):
   -- skipped
Debugger.stepInto called
Script wasm://wasm/9b4bf87e byte offset 38: Wasm opcode 0x01 (kExprNop)
at wasm_A (0:38):
 - scope (module):
   -- skipped
 - scope (local):
   {}
 - scope (wasm-expression-stack):
   {}
at wasm_B (0:56):
 - scope (module):
   -- skipped
 - scope (local):
   {"var0":0}
 - scope (wasm-expression-stack):
   {}
at (anonymous) (0:17):
 - scope (global):
   -- skipped
Debugger.stepInto called
Script wasm://wasm/9b4bf87e byte offset 39: Wasm opcode 0x01 (kExprNop)
at wasm_A (0:39):
 - scope (module):
   -- skipped
 - scope (local):
   {}
 - scope (wasm-expression-stack):
   {}
at wasm_B (0:56):
 - scope (module):
   -- skipped
 - scope (local):
   {"var0":0}
 - scope (wasm-expression-stack):
   {}
at (anonymous) (0:17):
 - scope (global):
   -- skipped
Debugger.stepInto called
Script wasm://wasm/9b4bf87e byte offset 40: Wasm opcode 0x0b (kExprEnd)
at wasm_A (0:40):
 - scope (module):
   -- skipped
 - scope (local):
   {}
 - scope (wasm-expression-stack):
   {}
at wasm_B (0:56):
 - scope (module):
   -- skipped
 - scope (local):
   {"var0":0}
 - scope (wasm-expression-stack):
   {}
at (anonymous) (0:17):
 - scope (global):
   -- skipped
Debugger.stepInto called
Script wasm://wasm/9b4bf87e byte offset 58: Wasm opcode 0x0c (kExprBr)
at wasm_B (0:58):
 - scope (module):
   -- skipped
 - scope (local):
   {"var0":0}
 - scope (wasm-expression-stack):
   {}
at (anonymous) (0:17):
 - scope (global):
   -- skipped
Debugger.resume called
exports.main returned!
Finished!
