aboutsummaryrefslogtreecommitdiff
path: root/deps/v8/test/mjsunit/harmony/proxies-revocable.js
blob: d0d0f781d292736c0b0c24e55acd2edebb383b00 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// Copyright 2015 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.

// Flags: --harmony-proxies --harmony-reflect


traps = [
    "getPrototypeOf", "setPrototypeOf", "isExtensible", "preventExtensions",
    "getOwnPropertyDescriptor", "has", "get", "set", "deleteProperty",
    "defineProperty", "ownKeys", "apply", "construct"
];
// TODO(neis): Fix enumerate.

var {proxy, revoke} = Proxy.revocable({}, {});
assertEquals(0, revoke.length);

assertEquals(undefined, revoke());
for (var trap of traps) {
  assertThrows(() => Reflect[trap](proxy), TypeError);
}

assertEquals(undefined, revoke());
for (var trap of traps) {
  assertThrows(() => Reflect[trap](proxy), TypeError);
}