// Forward to the target if the trap is not defined var target = { foo: 'bar' }; for (let p of [new Proxy(target, {}), Proxy.revocable(target, {}).proxy]) { // The sets from the first iteration will affect target, but it doesn't // matter, since the effectiveness of the foo sets is still observable. p.foo = 'baz'; assertEq(target.foo, 'baz'); p['foo'] = 'buz'; assertEq(target.foo, 'buz'); var sym = Symbol.for('quux'); p[sym] = sym; assertEq(target[sym], sym); // Reset for second iteration target[sym] = undefined; }