Tests breakable locations in for-of loops. Running test: testBreakLocations function getIterable() { |_|return { [Symbol.iterator]() { |_|return { i: 0, next() { if (this.|_|i < 1) { |_|return { value: this.i++, done: false };|R| } |_|return { value: undefined, done: true };|R| } };|R| } };|R| } function testFunction() { var obj = |_|{a : 1}; var arr = |_|[1]; var all = |_|[]; for (var |_|k in |_|arr) { all.|C|push(k); } for (var |_|k of |_|arr) { all.|C|push(k); } for (var |_|k in |_|obj) { all.|C|push(k); } for (let |_|k in |_|arr) { all.|C|push(k); } for (let |_|k of |_|arr) { all.|C|push(k); } for (let |_|k in |_|obj) { all.|C|push(k); } var iterable = |C|getIterable(); for (var |_|k of |_|iterable) { all.|C|push(k); } |_|iterable.i = 0; for (let |_|k of |_|iterable) { all.|C|push(k); } |R|} Running test: testStepInto (anonymous) (expr.js:0:0) testFunction (test.js:17:12) (anonymous) (expr.js:0:0) function testFunction() { var obj = #{a : 1}; var arr = [1]; testFunction (test.js:18:12) (anonymous) (expr.js:0:0) var obj = {a : 1}; var arr = #[1]; var all = []; testFunction (test.js:19:12) (anonymous) (expr.js:0:0) var arr = [1]; var all = #[]; for (var k in arr) { all.push(k); } testFunction (test.js:20:16) (anonymous) (expr.js:0:0) var all = []; for (var k in #arr) { all.push(k); } for (var k of arr) { all.push(k); } testFunction (test.js:20:11) (anonymous) (expr.js:0:0) var all = []; for (var #k in arr) { all.push(k); } for (var k of arr) { all.push(k); } testFunction (test.js:20:27) (anonymous) (expr.js:0:0) var all = []; for (var k in arr) { all.#push(k); } for (var k of arr) { all.push(k); } testFunction (test.js:21:16) (anonymous) (expr.js:0:0) for (var k in arr) { all.push(k); } for (var k of #arr) { all.push(k); } for (var k in obj) { all.push(k); } testFunction (test.js:21:11) (anonymous) (expr.js:0:0) for (var k in arr) { all.push(k); } for (var #k of arr) { all.push(k); } for (var k in obj) { all.push(k); } testFunction (test.js:21:27) (anonymous) (expr.js:0:0) for (var k in arr) { all.push(k); } for (var k of arr) { all.#push(k); } for (var k in obj) { all.push(k); } testFunction (test.js:22:16) (anonymous) (expr.js:0:0) for (var k of arr) { all.push(k); } for (var k in #obj) { all.push(k); } for (let k in arr) { all.push(k); } testFunction (test.js:22:11) (anonymous) (expr.js:0:0) for (var k of arr) { all.push(k); } for (var #k in obj) { all.push(k); } for (let k in arr) { all.push(k); } testFunction (test.js:22:27) (anonymous) (expr.js:0:0) for (var k of arr) { all.push(k); } for (var k in obj) { all.#push(k); } for (let k in arr) { all.push(k); } testFunction (test.js:23:16) (anonymous) (expr.js:0:0) for (var k in obj) { all.push(k); } for (let k in #arr) { all.push(k); } for (let k of arr) { all.push(k); } testFunction (test.js:23:11) (anonymous) (expr.js:0:0) for (var k in obj) { all.push(k); } for (let #k in arr) { all.push(k); } for (let k of arr) { all.push(k); } testFunction (test.js:23:27) (anonymous) (expr.js:0:0) for (var k in obj) { all.push(k); } for (let k in arr) { all.#push(k); } for (let k of arr) { all.push(k); } testFunction (test.js:24:16) (anonymous) (expr.js:0:0) for (let k in arr) { all.push(k); } for (let k of #arr) { all.push(k); } for (let k in obj) { all.push(k); } testFunction (test.js:24:11) (anonymous) (expr.js:0:0) for (let k in arr) { all.push(k); } for (let #k of arr) { all.push(k); } for (let k in obj) { all.push(k); } testFunction (test.js:24:27) (anonymous) (expr.js:0:0) for (let k in arr) { all.push(k); } for (let k of arr) { all.#push(k); } for (let k in obj) { all.push(k); } testFunction (test.js:25:16) (anonymous) (expr.js:0:0) for (let k of arr) { all.push(k); } for (let k in #obj) { all.push(k); } testFunction (test.js:25:11) (anonymous) (expr.js:0:0) for (let k of arr) { all.push(k); } for (let #k in obj) { all.push(k); } testFunction (test.js:25:27) (anonymous) (expr.js:0:0) for (let k of arr) { all.push(k); } for (let k in obj) { all.#push(k); } testFunction (test.js:27:17) (anonymous) (expr.js:0:0) var iterable = #getIterable(); for (var k of iterable) { all.push(k); } getIterable (test.js:2:2) testFunction (test.js:27:17) (anonymous) (expr.js:0:0) function getIterable() { #return { [Symbol.iterator]() { getIterable (test.js:14:4) testFunction (test.js:27:17) (anonymous) (expr.js:0:0) } };# } testFunction (test.js:28:16) (anonymous) (expr.js:0:0) var iterable = getIterable(); for (var k of #iterable) { all.push(k); } iterable.i = 0; [Symbol.iterator] (test.js:4:6) testFunction (test.js:28:16) (anonymous) (expr.js:0:0) [Symbol.iterator]() { #return { i: 0, [Symbol.iterator] (test.js:12:8) testFunction (test.js:28:16) (anonymous) (expr.js:0:0) } };# } next (test.js:7:19) testFunction (test.js:28:11) (anonymous) (expr.js:0:0) next() { if (this.#i < 1) { return { value: this.i++, done: false }; next (test.js:8:12) testFunction (test.js:28:11) (anonymous) (expr.js:0:0) if (this.i < 1) { #return { value: this.i++, done: false }; } next (test.js:8:52) testFunction (test.js:28:11) (anonymous) (expr.js:0:0) if (this.i < 1) { return { value: this.i++, done: false };# } testFunction (test.js:28:11) (anonymous) (expr.js:0:0) var iterable = getIterable(); for (var #k of iterable) { all.push(k); } iterable.i = 0; testFunction (test.js:28:32) (anonymous) (expr.js:0:0) var iterable = getIterable(); for (var k of iterable) { all.#push(k); } iterable.i = 0; next (test.js:7:19) testFunction (test.js:28:11) (anonymous) (expr.js:0:0) next() { if (this.#i < 1) { return { value: this.i++, done: false }; next (test.js:10:10) testFunction (test.js:28:11) (anonymous) (expr.js:0:0) } #return { value: undefined, done: true }; } next (test.js:10:50) testFunction (test.js:28:11) (anonymous) (expr.js:0:0) } return { value: undefined, done: true };# } testFunction (test.js:29:2) (anonymous) (expr.js:0:0) for (var k of iterable) { all.push(k); } #iterable.i = 0; for (let k of iterable) { all.push(k); } testFunction (test.js:30:16) (anonymous) (expr.js:0:0) iterable.i = 0; for (let k of #iterable) { all.push(k); } } [Symbol.iterator] (test.js:4:6) testFunction (test.js:30:16) (anonymous) (expr.js:0:0) [Symbol.iterator]() { #return { i: 0, [Symbol.iterator] (test.js:12:8) testFunction (test.js:30:16) (anonymous) (expr.js:0:0) } };# } next (test.js:7:19) testFunction (test.js:30:11) (anonymous) (expr.js:0:0) next() { if (this.#i < 1) { return { value: this.i++, done: false }; next (test.js:8:12) testFunction (test.js:30:11) (anonymous) (expr.js:0:0) if (this.i < 1) { #return { value: this.i++, done: false }; } next (test.js:8:52) testFunction (test.js:30:11) (anonymous) (expr.js:0:0) if (this.i < 1) { return { value: this.i++, done: false };# } testFunction (test.js:30:11) (anonymous) (expr.js:0:0) iterable.i = 0; for (let #k of iterable) { all.push(k); } } testFunction (test.js:30:32) (anonymous) (expr.js:0:0) iterable.i = 0; for (let k of iterable) { all.#push(k); } } next (test.js:7:19) testFunction (test.js:30:11) (anonymous) (expr.js:0:0) next() { if (this.#i < 1) { return { value: this.i++, done: false }; next (test.js:10:10) testFunction (test.js:30:11) (anonymous) (expr.js:0:0) } #return { value: undefined, done: true }; } next (test.js:10:50) testFunction (test.js:30:11) (anonymous) (expr.js:0:0) } return { value: undefined, done: true };# } testFunction (test.js:31:0) (anonymous) (expr.js:0:0) for (let k of iterable) { all.push(k); } #} (anonymous) (expr.js:0:35) Running test: testStepOver testFunction (test.js:17:12) (anonymous) (expr.js:0:0) function testFunction() { var obj = #{a : 1}; var arr = [1]; testFunction (test.js:18:12) (anonymous) (expr.js:0:0) var obj = {a : 1}; var arr = #[1]; var all = []; testFunction (test.js:19:12) (anonymous) (expr.js:0:0) var arr = [1]; var all = #[]; for (var k in arr) { all.push(k); } testFunction (test.js:20:16) (anonymous) (expr.js:0:0) var all = []; for (var k in #arr) { all.push(k); } for (var k of arr) { all.push(k); } testFunction (test.js:20:11) (anonymous) (expr.js:0:0) var all = []; for (var #k in arr) { all.push(k); } for (var k of arr) { all.push(k); } testFunction (test.js:20:27) (anonymous) (expr.js:0:0) var all = []; for (var k in arr) { all.#push(k); } for (var k of arr) { all.push(k); } testFunction (test.js:21:16) (anonymous) (expr.js:0:0) for (var k in arr) { all.push(k); } for (var k of #arr) { all.push(k); } for (var k in obj) { all.push(k); } testFunction (test.js:21:11) (anonymous) (expr.js:0:0) for (var k in arr) { all.push(k); } for (var #k of arr) { all.push(k); } for (var k in obj) { all.push(k); } testFunction (test.js:21:27) (anonymous) (expr.js:0:0) for (var k in arr) { all.push(k); } for (var k of arr) { all.#push(k); } for (var k in obj) { all.push(k); } testFunction (test.js:22:16) (anonymous) (expr.js:0:0) for (var k of arr) { all.push(k); } for (var k in #obj) { all.push(k); } for (let k in arr) { all.push(k); } testFunction (test.js:22:11) (anonymous) (expr.js:0:0) for (var k of arr) { all.push(k); } for (var #k in obj) { all.push(k); } for (let k in arr) { all.push(k); } testFunction (test.js:22:27) (anonymous) (expr.js:0:0) for (var k of arr) { all.push(k); } for (var k in obj) { all.#push(k); } for (let k in arr) { all.push(k); } testFunction (test.js:23:16) (anonymous) (expr.js:0:0) for (var k in obj) { all.push(k); } for (let k in #arr) { all.push(k); } for (let k of arr) { all.push(k); } testFunction (test.js:23:11) (anonymous) (expr.js:0:0) for (var k in obj) { all.push(k); } for (let #k in arr) { all.push(k); } for (let k of arr) { all.push(k); } testFunction (test.js:23:27) (anonymous) (expr.js:0:0) for (var k in obj) { all.push(k); } for (let k in arr) { all.#push(k); } for (let k of arr) { all.push(k); } testFunction (test.js:24:16) (anonymous) (expr.js:0:0) for (let k in arr) { all.push(k); } for (let k of #arr) { all.push(k); } for (let k in obj) { all.push(k); } testFunction (test.js:24:11) (anonymous) (expr.js:0:0) for (let k in arr) { all.push(k); } for (let #k of arr) { all.push(k); } for (let k in obj) { all.push(k); } testFunction (test.js:24:27) (anonymous) (expr.js:0:0) for (let k in arr) { all.push(k); } for (let k of arr) { all.#push(k); } for (let k in obj) { all.push(k); } testFunction (test.js:25:16) (anonymous) (expr.js:0:0) for (let k of arr) { all.push(k); } for (let k in #obj) { all.push(k); } testFunction (test.js:25:11) (anonymous) (expr.js:0:0) for (let k of arr) { all.push(k); } for (let #k in obj) { all.push(k); } testFunction (test.js:25:27) (anonymous) (expr.js:0:0) for (let k of arr) { all.push(k); } for (let k in obj) { all.#push(k); } testFunction (test.js:27:17) (anonymous) (expr.js:0:0) var iterable = #getIterable(); for (var k of iterable) { all.push(k); } testFunction (test.js:28:16) (anonymous) (expr.js:0:0) var iterable = getIterable(); for (var k of #iterable) { all.push(k); } iterable.i = 0; testFunction (test.js:28:11) (anonymous) (expr.js:0:0) var iterable = getIterable(); for (var #k of iterable) { all.push(k); } iterable.i = 0; testFunction (test.js:28:32) (anonymous) (expr.js:0:0) var iterable = getIterable(); for (var k of iterable) { all.#push(k); } iterable.i = 0; testFunction (test.js:29:2) (anonymous) (expr.js:0:0) for (var k of iterable) { all.push(k); } #iterable.i = 0; for (let k of iterable) { all.push(k); } testFunction (test.js:30:16) (anonymous) (expr.js:0:0) iterable.i = 0; for (let k of #iterable) { all.push(k); } } testFunction (test.js:30:11) (anonymous) (expr.js:0:0) iterable.i = 0; for (let #k of iterable) { all.push(k); } } testFunction (test.js:30:32) (anonymous) (expr.js:0:0) iterable.i = 0; for (let k of iterable) { all.#push(k); } } testFunction (test.js:31:0) (anonymous) (expr.js:0:0) for (let k of iterable) { all.push(k); } #} Running test: testStepIntoAfterBreakpoint testFunction (test.js:28:11) (anonymous) (expr.js:0:0) var iterable = getIterable(); for (var #k of iterable) { all.push(k); } iterable.i = 0; testFunction (test.js:28:32) (anonymous) (expr.js:0:0) var iterable = getIterable(); for (var k of iterable) { all.#push(k); } iterable.i = 0; Running test: testSetBreakpoint Setting breakpoint at test.js:28:0 var iterable = getIterable(); for (var k of #iterable) { all.push(k); } iterable.i = 0; Setting breakpoint at test.js:28:11 var iterable = getIterable(); for (var #k of iterable) { all.push(k); } iterable.i = 0; Setting breakpoint at test.js:28:16 var iterable = getIterable(); for (var k of #iterable) { all.push(k); } iterable.i = 0; Setting breakpoint at test.js:28:28 var iterable = getIterable(); for (var k of iterable) { all.#push(k); } iterable.i = 0; Running test: testSetBreakpointWhileInNext Forcing sparkplug compilation Setting breakpoint in next method body next (test.js:8:12) testFunction (test.js:28:11) (anonymous) (expr.js:1:8) Setting breakpoint in loop body while paused in next method if (this.i < 1) { #return { value: this.i++, done: false }; } testFunction (test.js:28:32) (anonymous) (expr.js:1:8) var iterable = getIterable(); for (var k of iterable) { all.#push(k); } iterable.i = 0;