diff options
Diffstat (limited to 'js/src/tests/ecma_6/Proxy/regress-bug1062349.js')
-rw-r--r-- | js/src/tests/ecma_6/Proxy/regress-bug1062349.js | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/js/src/tests/ecma_6/Proxy/regress-bug1062349.js b/js/src/tests/ecma_6/Proxy/regress-bug1062349.js new file mode 100644 index 000000000..fe0ad3d9a --- /dev/null +++ b/js/src/tests/ecma_6/Proxy/regress-bug1062349.js @@ -0,0 +1,31 @@ +// 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); |