Every line of 'javascript enumerate' code snippets is scanned for vulnerabilities by our powerful machine learning engine that combs millions of open source libraries, ensuring your JavaScript code is secure.
76 (function testProtoProxyEnumerate() { 77 var keys = ['a', 'b', 'c', 'd']; 78 var handler = { 79 enumerate() { return keys[Symbol.iterator]() }, 80 has(target, key) { return false } 81 }; 82 var proxy = new Proxy({}, handler); 83 var seen_keys = []; 84 for (var i in proxy) { 85 seen_keys.push(i); 86 } 87 assertEquals([], seen_keys); 88 89 handler.has = function(target, key) { return true }; 90 for (var i in proxy) { 91 seen_keys.push(i); 92 } 93 assertEquals(keys, seen_keys); 94 95 o = {__proto__:proxy}; 96 handler.has = function(target, key) { return false }; 97 seen_keys = []; 98 for (var i in o) { 99 seen_keys.push(i); 100 } 101 assertEquals([], seen_keys); 102 103 handler.has = function(target, key) { return true }; 104 seen_keys = []; 105 for (var i in o) { 106 seen_keys.push(i); 107 } 108 assertEquals(keys, seen_keys); 109 })();