// 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;
}