// Copyright 2017 the V8 project authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. (function testNonConfigurableProperty() { function ownKeys(x) { return ["23", "length"]; } var target = []; var proxy = new Proxy(target, {ownKeys:ownKeys}); Object.defineProperty(target, "23", {value:true}); assertEquals(["23", "length"], Object.getOwnPropertyNames(proxy)); })(); (function testPreventedExtension() { function ownKeys(x) { return ["42", "length"]; } var target = []; var proxy = new Proxy(target, {ownKeys:ownKeys}); target[42] = true; Object.preventExtensions(target); assertEquals(["42", "length"], Object.getOwnPropertyNames(proxy)); })();