| Index: test/mjsunit/harmony/proxies-enumerate.js
|
| diff --git a/test/mjsunit/harmony/proxies-enumerate.js b/test/mjsunit/harmony/proxies-enumerate.js
|
| index 0da706d9e101f0814ba5c0dab2ed4f815fa78b67..a77c668ee38a3f4ee4f396a7f7f3d56dbb3b66a7 100644
|
| --- a/test/mjsunit/harmony/proxies-enumerate.js
|
| +++ b/test/mjsunit/harmony/proxies-enumerate.js
|
| @@ -3,7 +3,7 @@
|
| // found in the LICENSE file.
|
|
|
| // Flags: --harmony-proxies
|
| -
|
| +/*
|
| var target = {
|
| "target_one": 1
|
| };
|
| @@ -72,3 +72,39 @@ TestNonStringKey({bad: "value"});
|
| TestNonStringKey(null);
|
| TestNonStringKey(undefined);
|
| TestNonStringKey(true);
|
| +*/
|
| +
|
| +(function testProtoProxyEnumerate() {
|
| + var keys = ['a', 'b', 'c', 'd'];
|
| + var handler = {
|
| + enumerate() { return keys[Symbol.iterator]() },
|
| + has(target, key) { return false }
|
| + };
|
| + var proxy = new Proxy({}, handler);
|
| + var seen_keys = [];
|
| + for (var i in proxy) {
|
| + seen_keys.push(i);
|
| + }
|
| + assertEquals([], seen_keys);
|
| +
|
| + handler.has = function(target, key) { return true };
|
| + for (var i in proxy) {
|
| + seen_keys.push(i);
|
| + }
|
| + assertEquals(keys, seen_keys);
|
| +
|
| + o = {__proto__:proxy};
|
| + handler.has = function(target, key) { return false };
|
| + seen_keys = [];
|
| + for (var i in o) {
|
| + seen_keys.push(i);
|
| + }
|
| + assertEquals([], seen_keys);
|
| +
|
| + handler.has = function(target, key) { return true };
|
| + seen_keys = [];
|
| + for (var i in o) {
|
| + seen_keys.push(i);
|
| + }
|
| + assertEquals(keys, seen_keys);
|
| +})();
|
|
|