1// Copyright 2015 the V8 project authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5// Flags: --harmony-proxies
6
7var handler = {};
8var target = { a: 1 };
9var proxy = new Proxy(target, handler);
10
11assertTrue(target.propertyIsEnumerable('a'));
12assertTrue(proxy.propertyIsEnumerable('a'));
13assertFalse(target.propertyIsEnumerable('b'));
14assertFalse(proxy.propertyIsEnumerable('b'));
15
16handler.getOwnPropertyDescriptor = function(target, prop) {
17  return { configurable: true, enumerable: true, value: 10 };
18}
19assertTrue(target.propertyIsEnumerable('a'));
20assertTrue(proxy.propertyIsEnumerable('a'));
21assertFalse(target.propertyIsEnumerable('b'));
22assertTrue(proxy.propertyIsEnumerable('b'));
23
24handler.getOwnPropertyDescriptor = function(target, prop) {
25  return { configurable: true, enumerable: false, value: 10 };
26}
27assertTrue(target.propertyIsEnumerable('a'));
28assertFalse(proxy.propertyIsEnumerable('a'));
29assertFalse(target.propertyIsEnumerable('b'));
30assertFalse(proxy.propertyIsEnumerable('b'));
31