text: load("fcfbc86708bc3a4062c2091a062e13b6.js");
  load("bcb77b03ed13784489484535627fca54.js");
  // Interaction of eval with generator expressions.
  function a1() {
    var a = 10;
    var g = (for (y of [0]) eval('var a=42;'));
    g.next();
    return a;
  }
  assertEq(a1(), 10);
  
  function a2() {
    var a = 10;
    (for (y of [0]) eval('a=42')).next();
    return a;
  }
  assertEq(a2(), 42)
  
  // Arguments and this.
  function b1() {
    return [for (arg of (for (i of [0, 1, 2]) arguments[i])) arg];
  }
  assertDeepEq(b1('a', 'b', 'c'), ['a', 'b', 'c']);
  
  function b2() {
    return [for (x of (for (i of [0]) this)) x];
  }
  var b2o = { b2: b2 }
  assertDeepEq(b2o.b2(), [b2o])
  
  // Assignment to eval or arguments.
  function c1() {
    return [for (arg of (for (i of [0, 1, 2]) arguments = i)) arg];
  }
  assertDeepEq(c1(), [0, 1, 2]);
  
  function c2() {
    "use strict";
    return eval('[for (arg of (for (i of [0, 1, 2]) arguments = i)) arg]');
  }
  assertThrows(c2, SyntaxError);
  
  function c3() {
    return [for (arg of (for (i of [0, 1, 2]) eval = i)) arg];
  }
  assertDeepEq(c3(), [0, 1, 2]);
  
  function c4() {
    "use strict";
    return eval('[for (arg of (for (i of [0, 1, 2]) eval = i)) arg]');
  }
  assertThrows(c4, SyntaxError);
  
  reportCompare(null, null, "test");
  