Tests breakable locations in for-of loops.

Running test: testBreakLocations

Running test: testStepInto

function testFunction() {
  var obj = |_|{a : 1};
  var arr = |_|[1];
  var all = |_|[];
  for (var |_|k in |_|arr) { all.|C|push(k); }
  for (var |C|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 |C|k of |_|arr) { all.|C|push(k); }
  for (let |_|k in |_|obj) { all.|C|push(k); }

  var iterable = |_|{
    [Symbol.iterator]() {
      |_|return {
        i: 0,
        next() {
          if (this.|_|i < 1) {
            |_|return { value: this.i++, done: false };|R|
          }
          |_|return { value: undefined, done: true };|R|
        }
      };|R|
    }
  };
  for (var |C|k of |_|iterable) { all.|C|push(k); }
  |_|iterable.i = 0;
  for (let |C|k of |_|iterable) { all.|C|push(k); }
|R|}

(anonymous) (expr.js:0:0)


testFunction (test.js:2:12)
(anonymous) (expr.js:0:0)
function testFunction() {
  var obj = #{a : 1};
  var arr = [1];

testFunction (test.js:3:12)
(anonymous) (expr.js:0:0)
  var obj = {a : 1};
  var arr = #[1];
  var all = [];

testFunction (test.js:4:12)
(anonymous) (expr.js:0:0)
  var arr = [1];
  var all = #[];
  for (var k in arr) { all.push(k); }

testFunction (test.js:5: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:5: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:5: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:5: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:6: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:6: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:6: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:6: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:7: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:7: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:7: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:7: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:8: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:8: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:8: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:8: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:9: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:9: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:9: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:9: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:10: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:10: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:10: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:10: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:12:17)
(anonymous) (expr.js:0:0)

  var iterable = #{
    [Symbol.iterator]() {

testFunction (test.js:25:16)
(anonymous) (expr.js:0:0)
  };
  for (var k of #iterable) { all.push(k); }
  iterable.i = 0;

[Symbol.iterator] (test.js:14:6)
testFunction (test.js:25:16)
(anonymous) (expr.js:0:0)
    [Symbol.iterator]() {
      #return {
        i: 0,

[Symbol.iterator] (test.js:22:8)
testFunction (test.js:25:16)
(anonymous) (expr.js:0:0)
        }
      };#
    }

testFunction (test.js:25:11)
(anonymous) (expr.js:0:0)
  };
  for (var #k of iterable) { all.push(k); }
  iterable.i = 0;

next (test.js:17:19)
testFunction (test.js:25:11)
(anonymous) (expr.js:0:0)
        next() {
          if (this.#i < 1) {
            return { value: this.i++, done: false };

next (test.js:18:12)
testFunction (test.js:25:11)
(anonymous) (expr.js:0:0)
          if (this.i < 1) {
            #return { value: this.i++, done: false };
          }

next (test.js:18:52)
testFunction (test.js:25:11)
(anonymous) (expr.js:0:0)
          if (this.i < 1) {
            return { value: this.i++, done: false };#
          }

testFunction (test.js:25:11)
(anonymous) (expr.js:0:0)
  };
  for (var #k of iterable) { all.push(k); }
  iterable.i = 0;

testFunction (test.js:25:32)
(anonymous) (expr.js:0:0)
  };
  for (var k of iterable) { all.#push(k); }
  iterable.i = 0;

testFunction (test.js:25:11)
(anonymous) (expr.js:0:0)
  };
  for (var #k of iterable) { all.push(k); }
  iterable.i = 0;

next (test.js:17:19)
testFunction (test.js:25:11)
(anonymous) (expr.js:0:0)
        next() {
          if (this.#i < 1) {
            return { value: this.i++, done: false };

next (test.js:20:10)
testFunction (test.js:25:11)
(anonymous) (expr.js:0:0)
          }
          #return { value: undefined, done: true };
        }

next (test.js:20:50)
testFunction (test.js:25:11)
(anonymous) (expr.js:0:0)
          }
          return { value: undefined, done: true };#
        }

testFunction (test.js:26: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:27:16)
(anonymous) (expr.js:0:0)
  iterable.i = 0;
  for (let k of #iterable) { all.push(k); }
}

[Symbol.iterator] (test.js:14:6)
testFunction (test.js:27:16)
(anonymous) (expr.js:0:0)
    [Symbol.iterator]() {
      #return {
        i: 0,

[Symbol.iterator] (test.js:22:8)
testFunction (test.js:27:16)
(anonymous) (expr.js:0:0)
        }
      };#
    }

testFunction (test.js:27:11)
(anonymous) (expr.js:0:0)
  iterable.i = 0;
  for (let #k of iterable) { all.push(k); }
}

next (test.js:17:19)
testFunction (test.js:27:11)
(anonymous) (expr.js:0:0)
        next() {
          if (this.#i < 1) {
            return { value: this.i++, done: false };

next (test.js:18:12)
testFunction (test.js:27:11)
(anonymous) (expr.js:0:0)
          if (this.i < 1) {
            #return { value: this.i++, done: false };
          }

next (test.js:18:52)
testFunction (test.js:27:11)
(anonymous) (expr.js:0:0)
          if (this.i < 1) {
            return { value: this.i++, done: false };#
          }

testFunction (test.js:27:11)
(anonymous) (expr.js:0:0)
  iterable.i = 0;
  for (let #k of iterable) { all.push(k); }
}

testFunction (test.js:27:32)
(anonymous) (expr.js:0:0)
  iterable.i = 0;
  for (let k of iterable) { all.#push(k); }
}

testFunction (test.js:27:11)
(anonymous) (expr.js:0:0)
  iterable.i = 0;
  for (let #k of iterable) { all.push(k); }
}

next (test.js:17:19)
testFunction (test.js:27:11)
(anonymous) (expr.js:0:0)
        next() {
          if (this.#i < 1) {
            return { value: this.i++, done: false };

next (test.js:20:10)
testFunction (test.js:27:11)
(anonymous) (expr.js:0:0)
          }
          #return { value: undefined, done: true };
        }

next (test.js:20:50)
testFunction (test.js:27:11)
(anonymous) (expr.js:0:0)
          }
          return { value: undefined, done: true };#
        }

testFunction (test.js:28:0)
(anonymous) (expr.js:0:0)
  for (let k of iterable) { all.push(k); }
#}

(anonymous) (expr.js:0:35)



Running test: testStepIntoAfterBreakpoint
testFunction (test.js:25:11)
(anonymous) (expr.js:0:0)
  };
  for (var #k of iterable) { all.push(k); }
  iterable.i = 0;

next (test.js:17:19)
testFunction (test.js:25:11)
(anonymous) (expr.js:0:0)
        next() {
          if (this.#i < 1) {
            return { value: this.i++, done: false };

