function *f() {
var o = new Proxy({}, {
get: function() { assertEq(0, 1); },
has: function() { assertEq(0, 2); }
});
with (o) {
yield 1;
with ({}) {
yield 2;
}
}
with ({".generator": 100}) {
yield eval("3");
}
}
var s = "";
for (var i of f())
s += i;
assertEq(s, "123");