Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(470)

Side by Side Diff: test/mjsunit/harmony/proxies-get.js

Issue 1492923002: [proxies] do not leak private symbols to proxy traps (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Move check to LookupIterator Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/lookup.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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 })();
OLDNEW
« no previous file with comments | « src/lookup.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698