blob: f1df965ac91e847823b0068af7a932c3075d940b [file] [log] [blame]
// Copyright (C) 2016 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-additional-properties-of-the-object.prototype-object
description: >
Behavior when [[GetOwnProperty]] of "this" value returns an abrupt
completion
info: |
[...]
4. Repeat
a. Let desc be ? O.[[GetOwnProperty]](key).
b. If desc is not undefined, then
i. If IsAccessorDescriptor(desc) is true, return desc.[[Set]].
ii. Return undefined.
c. Let O be ? O.[[GetPrototypeOf]]().
d. If O is null, return undefined.
features: [Proxy]
---*/
var root = Object.defineProperty({}, 'target', { set: function() {} });
var thrower = function() { throw new Test262Error(); };
var subject = new Proxy(root, { getOwnPropertyDescriptor: thrower });
assert.throws(Test262Error, function() {
subject.__lookupSetter__('target');
});