OLD | NEW |
1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Flags: --harmony-proxies --harmony-reflect | |
6 | |
7 var target = { target: 1 }; | 5 var target = { target: 1 }; |
8 target.__proto__ = {}; | 6 target.__proto__ = {}; |
9 var handler = { handler: 1 }; | 7 var handler = { handler: 1 }; |
10 var proxy = new Proxy(target, handler); | 8 var proxy = new Proxy(target, handler); |
11 | 9 |
12 assertSame(Object.getPrototypeOf(proxy), target.__proto__ ); | 10 assertSame(Object.getPrototypeOf(proxy), target.__proto__ ); |
13 | 11 |
14 | 12 |
15 assertThrows(function() { Object.setPrototypeOf(proxy, undefined) }, TypeError); | 13 assertThrows(function() { Object.setPrototypeOf(proxy, undefined) }, TypeError); |
16 assertThrows(function() { Object.setPrototypeOf(proxy, 1) }, TypeError); | 14 assertThrows(function() { Object.setPrototypeOf(proxy, 1) }, TypeError); |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
121 assertThrows(() => {Reflect.setPrototypeOf(proxy2, prototype)}, TypeError); | 119 assertThrows(() => {Reflect.setPrototypeOf(proxy2, prototype)}, TypeError); |
122 })(); | 120 })(); |
123 | 121 |
124 (function testProxyTrapReturnsFalse() { | 122 (function testProxyTrapReturnsFalse() { |
125 var handler = {}; | 123 var handler = {}; |
126 handler.setPrototypeOf = () => false; | 124 handler.setPrototypeOf = () => false; |
127 var target = new Proxy({}, {isExtensible: () => assertUnreachable()}); | 125 var target = new Proxy({}, {isExtensible: () => assertUnreachable()}); |
128 var object = new Proxy(target, handler); | 126 var object = new Proxy(target, handler); |
129 assertFalse(Reflect.setPrototypeOf(object, {})); | 127 assertFalse(Reflect.setPrototypeOf(object, {})); |
130 })(); | 128 })(); |
OLD | NEW |