Tests breakable locations in variable initializations. Running test: testBreakLocations Running test: testStepInto function testFunction() { var obj1 = |_|{a : 1}; var arr1 = |_|[1]; var promise = |_|Promise.|C|resolve(1).|C|then(x => x |_|* 2|R|).|C|then(x => x |_|/ 2|R|); |_|Promise.|C|resolve(1).|C|then(x => x |_|* 2|R|).|C|then(x => x |_|/ 2|R|); |_|promise = Promise.|C|resolve(1).|C|then(x => x |_|* 2|R|).|C|then(x => x |_|/ 2|R|); var a = |_|1; const x = |_|(a = 20); var y = |_|(a = 100); var z = |_|x + (a = 1) + (a = 2) + (a = 3) + |C|f(); function f() { for (let { x, y } = |_|{ x: 0, y: 1 }; y |_|> 0; --|_|y) { let z = |_|x + y; } |R|} var b = obj1.|_|a; |_|(async function asyncF() { let r = |_|await Promise.|C|resolve(42); |_|return r; |R|})|C|(); |_|return promise;|R| } (anonymous) (expr.js:0:0) testFunction (test.js:2:13) (anonymous) (expr.js:0:0) function testFunction() { var obj1 = #{a : 1}; var arr1 = [1]; testFunction (test.js:3:13) (anonymous) (expr.js:0:0) var obj1 = {a : 1}; var arr1 = #[1]; var promise = Promise.resolve(1).then(x => x * 2).then(x => x / 2); testFunction (test.js:4:16) (anonymous) (expr.js:0:0) var arr1 = [1]; var promise = #Promise.resolve(1).then(x => x * 2).then(x => x / 2); Promise.resolve(1).then(x => x * 2).then(x => x / 2); testFunction (test.js:5:2) (anonymous) (expr.js:0:0) var promise = Promise.resolve(1).then(x => x * 2).then(x => x / 2); #Promise.resolve(1).then(x => x * 2).then(x => x / 2); promise = Promise.resolve(1).then(x => x * 2).then(x => x / 2); testFunction (test.js:6:2) (anonymous) (expr.js:0:0) Promise.resolve(1).then(x => x * 2).then(x => x / 2); #promise = Promise.resolve(1).then(x => x * 2).then(x => x / 2); var a = 1; testFunction (test.js:7:10) (anonymous) (expr.js:0:0) promise = Promise.resolve(1).then(x => x * 2).then(x => x / 2); var a = #1; const x = (a = 20); testFunction (test.js:8:12) (anonymous) (expr.js:0:0) var a = 1; const x = #(a = 20); var y = (a = 100); testFunction (test.js:9:10) (anonymous) (expr.js:0:0) const x = (a = 20); var y = #(a = 100); var z = x + (a = 1) + (a = 2) + (a = 3) + f(); testFunction (test.js:10:10) (anonymous) (expr.js:0:0) var y = (a = 100); var z = #x + (a = 1) + (a = 2) + (a = 3) + f(); function f() { f (test.js:12:24) testFunction (test.js:10:44) (anonymous) (expr.js:0:0) function f() { for (let { x, y } = #{ x: 0, y: 1 }; y > 0; --y) { let z = x + y; } } f (test.js:12:42) testFunction (test.js:10:44) (anonymous) (expr.js:0:0) function f() { for (let { x, y } = { x: 0, y: 1 }; y #> 0; --y) { let z = x + y; } } f (test.js:12:62) testFunction (test.js:10:44) (anonymous) (expr.js:0:0) function f() { for (let { x, y } = { x: 0, y: 1 }; y > 0; --y) { let z = #x + y; } } f (test.js:12:49) testFunction (test.js:10:44) (anonymous) (expr.js:0:0) function f() { for (let { x, y } = { x: 0, y: 1 }; y > 0; --#y) { let z = x + y; } } f (test.js:12:42) testFunction (test.js:10:44) (anonymous) (expr.js:0:0) function f() { for (let { x, y } = { x: 0, y: 1 }; y #> 0; --y) { let z = x + y; } } f (test.js:13:2) testFunction (test.js:10:44) (anonymous) (expr.js:0:0) for (let { x, y } = { x: 0, y: 1 }; y > 0; --y) { let z = x + y; } #} var b = obj1.a; testFunction (test.js:14:15) (anonymous) (expr.js:0:0) } var b = obj1.#a; (async function asyncF() { testFunction (test.js:15:2) (anonymous) (expr.js:0:0) var b = obj1.a; #(async function asyncF() { let r = await Promise.resolve(42); asyncF (test.js:16:12) testFunction (test.js:18:4) (anonymous) (expr.js:0:0) (async function asyncF() { let r = #await Promise.resolve(42); return r; asyncF (test.js:17:4) let r = await Promise.resolve(42); #return r; })(); asyncF (test.js:18:2) return r; #})(); return promise; Promise.resolve.then.then.x (test.js:4:64) var arr1 = [1]; var promise = Promise.resolve(1).then(x => x * 2).then(x => x #/ 2); Promise.resolve(1).then(x => x * 2).then(x => x / 2); Promise.resolve.then.then.x (test.js:4:67) var arr1 = [1]; var promise = Promise.resolve(1).then(x => x * 2).then(x => x / 2#); Promise.resolve(1).then(x => x * 2).then(x => x / 2); Promise.resolve.then.then.x (test.js:5:50) var promise = Promise.resolve(1).then(x => x * 2).then(x => x / 2); Promise.resolve(1).then(x => x * 2).then(x => x #/ 2); promise = Promise.resolve(1).then(x => x * 2).then(x => x / 2); Promise.resolve.then.then.x (test.js:5:53) var promise = Promise.resolve(1).then(x => x * 2).then(x => x / 2); Promise.resolve(1).then(x => x * 2).then(x => x / 2#); promise = Promise.resolve(1).then(x => x * 2).then(x => x / 2); Promise.resolve.then.then.x (test.js:6:60) Promise.resolve(1).then(x => x * 2).then(x => x / 2); promise = Promise.resolve(1).then(x => x * 2).then(x => x #/ 2); var a = 1; Promise.resolve.then.then.x (test.js:6:63) Promise.resolve(1).then(x => x * 2).then(x => x / 2); promise = Promise.resolve(1).then(x => x * 2).then(x => x / 2#); var a = 1; Running test: testStepIntoAfterBreakpoint testFunction (test.js:10:10) (anonymous) (expr.js:0:0) var y = (a = 100); var z = #x + (a = 1) + (a = 2) + (a = 3) + f(); function f() { f (test.js:12:24) testFunction (test.js:10:44) (anonymous) (expr.js:0:0) function f() { for (let { x, y } = #{ x: 0, y: 1 }; y > 0; --y) { let z = x + y; } }