// Copyright 2019 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.

// Define an object with a getter and a proxy as it's prototype.
var obj = {foo: 'bar'};
Object.defineProperty(obj, 'foo', {
  get: function () {
  }
});
obj.__proto__ = new Proxy([], {});

// Get key from a function to avoid the property access turning into a
// named property access.
function getKey() {
  return 'values'
}

// Keyed access to update obj's values property.
obj[getKey()] = 1;