// Forward to the target if the trap is undefined
var p;
var target = function (x, y) {
    assertEq(new.target, p);
    this.foo = x + y;
}

for (p of [new Proxy(target, {}), Proxy.revocable(target, {}).proxy]) {
    var obj = new p(2, 3);
    assertEq(obj.foo, 5);
    assertEq(Object.getPrototypeOf(obj), target.prototype);
}