| 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 | 5 // Flags: --harmony-proxies --harmony-reflect --allow-natives-syntax |
| 6 | 6 |
| 7 (function testBasicFunctionality() { | 7 (function testBasicFunctionality() { |
| 8 var target = { | 8 var target = { |
| 9 target_one: 1, | 9 target_one: 1, |
| 10 property: "value" | 10 property: "value" |
| 11 }; | 11 }; |
| 12 | 12 |
| 13 var handler = {handler:1}; | 13 var handler = {handler:1}; |
| 14 | 14 |
| 15 var proxy = new Proxy(target, handler); | 15 var proxy = new Proxy(target, handler); |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 86 // target for which the handler will return a value. | 86 // target for which the handler will return a value. |
| 87 Object.defineProperty(target, "key3", { | 87 Object.defineProperty(target, "key3", { |
| 88 configurable: false, | 88 configurable: false, |
| 89 set: function() { } | 89 set: function() { } |
| 90 }); | 90 }); |
| 91 assertEquals("value", proxy.property); | 91 assertEquals("value", proxy.property); |
| 92 assertThrows(function(){ proxy.key }, TypeError); | 92 assertThrows(function(){ proxy.key }, TypeError); |
| 93 assertEquals("value", proxy.key2); | 93 assertEquals("value", proxy.key2); |
| 94 assertThrows(function(){ proxy.key3 }, TypeError); | 94 assertThrows(function(){ proxy.key3 }, TypeError); |
| 95 })(); | 95 })(); |
| 96 |
| 97 (function testGetInternalIterators() { |
| 98 var log = []; |
| 99 var array = [1,2,3,4,5] |
| 100 var origIt = array[Symbol.iterator](); |
| 101 var it = new Proxy(origIt, { |
| 102 get(t, name) { |
| 103 log.push(`[[Get]](iterator, ${String(name)})`); |
| 104 return Reflect.get(t, name); |
| 105 }, |
| 106 set(t, name, val) { |
| 107 log.push(`[[Set]](iterator, ${String(name)}, ${String(val)})`); |
| 108 return Reflect.set(t, name, val); |
| 109 } |
| 110 }); |
| 111 |
| 112 assertThrows(function() { |
| 113 for (var v of it) log.push(v); |
| 114 }, TypeError); |
| 115 assertEquals([ |
| 116 "[[Get]](iterator, Symbol(Symbol.iterator))", |
| 117 "[[Get]](iterator, next)" |
| 118 ], log); |
| 119 })(); |
| OLD | NEW |