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 | 5 // Flags: --harmony-proxies --harmony-reflect --allow-natives-syntax |
6 | 6 |
7 | 7 |
8 var properties = | 8 var properties = |
9 ["bla", "0", 1, Symbol(), {[Symbol.toPrimitive]() {return "a"}}]; | 9 ["bla", "0", 1, Symbol(), {[Symbol.toPrimitive]() {return "a"}}]; |
10 | 10 |
11 | 11 |
12 function TestForwarding(handler, myDelete, shouldThrow) { | 12 function TestForwarding(handler, myDelete, shouldThrow) { |
13 var target = {}; | 13 var target = {}; |
14 var proxy = new Proxy(target, handler); | 14 var proxy = new Proxy(target, handler); |
15 | 15 |
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
181 | 181 |
182 | 182 |
183 TestTrappingFalsish( | 183 TestTrappingFalsish( |
184 (o, p) => delete o[p], false); | 184 (o, p) => delete o[p], false); |
185 TestTrappingFalsish( | 185 TestTrappingFalsish( |
186 (o, p) => Reflect.deleteProperty(o, p), false); | 186 (o, p) => Reflect.deleteProperty(o, p), false); |
187 TestTrappingFalsish( | 187 TestTrappingFalsish( |
188 (o, p) => {"use strict"; return delete o[p]}, true); | 188 (o, p) => {"use strict"; return delete o[p]}, true); |
189 TestTrappingFalsish( | 189 TestTrappingFalsish( |
190 (o, p) => {"use strict"; return Reflect.deleteProperty(o, p)}, false); | 190 (o, p) => {"use strict"; return Reflect.deleteProperty(o, p)}, false); |
| 191 |
| 192 (function testDeletePrivateSymbol() { |
| 193 var symbol = %CreatePrivateSymbol("secret"); |
| 194 var O = { [symbol]: "value" }; |
| 195 var proxy = new Proxy(O, { delete(t, name) { assertUnreachable(); }}); |
| 196 delete proxy[symbol]; |
| 197 assertEquals(true, Reflect.deleteProperty(proxy, symbol)); |
| 198 assertEquals("value", O[symbol]); |
| 199 assertEquals(true, Reflect.deleteProperty(O, symbol)); |
| 200 assertEquals(undefined, O[symbol]); |
| 201 })(); |
OLD | NEW |