// Adapted from a test case contributed by André Bargull in bug 1062349.

var log = [];
var hh = {
    get(t, pk) {
        log.push("trap: " + pk);
        return t[pk];
    }
};
var h = new Proxy({
    get set() {
        log.push("called set()");
        Object.defineProperty(o, "prop", {value: 0});
        log.push("o.prop:", Object.getOwnPropertyDescriptor(o, "prop"));
    }
}, hh);
var p = new Proxy({}, h);
var o = {__proto__: p};

o.prop = 1;

var expectedDesc = {value: 0, writable: false, enumerable: false, configurable: false};
assertDeepEq(log, [
    "trap: set",
    "called set()",
    "o.prop:",
    expectedDesc
]);
assertDeepEq(Object.getOwnPropertyDescriptor(o, "prop"), expectedDesc);

reportCompare(0, 0);