1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
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");