mirror of https://github.com/tc39/test262.git
31 lines
1.7 KiB
JavaScript
31 lines
1.7 KiB
JavaScript
// Copyright (C) 2016 Jordan Harband. All rights reserved.
|
|
// This code is governed by the BSD license found in the LICENSE file.
|
|
/*---
|
|
description: |
|
|
Used to assert the correctness of object behavior in the presence
|
|
and context of Proxy objects.
|
|
---*/
|
|
|
|
function allowProxyTraps(overrides) {
|
|
function throwTest262Error(msg) {
|
|
return function () { throw new Test262Error(msg); };
|
|
}
|
|
if (!overrides) { overrides = {}; }
|
|
return {
|
|
getPrototypeOf: overrides.getPrototypeOf || throwTest262Error('[[GetPrototypeOf]] trap called'),
|
|
setPrototypeOf: overrides.setPrototypeOf || throwTest262Error('[[SetPrototypeOf]] trap called'),
|
|
isExtensible: overrides.isExtensible || throwTest262Error('[[IsExtensible]] trap called'),
|
|
preventExtensions: overrides.preventExtensions || throwTest262Error('[[PreventExtensions]] trap called'),
|
|
getOwnPropertyDescriptor: overrides.getOwnPropertyDescriptor || throwTest262Error('[[GetOwnProperty]] trap called'),
|
|
has: overrides.has || throwTest262Error('[[HasProperty]] trap called'),
|
|
get: overrides.get || throwTest262Error('[[Get]] trap called'),
|
|
set: overrides.set || throwTest262Error('[[Set]] trap called'),
|
|
deleteProperty: overrides.deleteProperty || throwTest262Error('[[Delete]] trap called'),
|
|
defineProperty: overrides.defineProperty || throwTest262Error('[[DefineOwnProperty]] trap called'),
|
|
enumerate: throwTest262Error('[[Enumerate]] trap called: this trap has been removed'),
|
|
ownKeys: overrides.ownKeys || throwTest262Error('[[OwnPropertyKeys]] trap called'),
|
|
apply: overrides.apply || throwTest262Error('[[Call]] trap called'),
|
|
construct: overrides.construct || throwTest262Error('[[Construct]] trap called')
|
|
};
|
|
}
|