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

Side by Side Diff: test/mjsunit/harmony/proxies-has-own-property.js

Issue 1532723005: [proxies] Fix Object.prototype.hasOwnProperty (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Address comment 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 | « test/mjsunit/harmony/proxies.js ('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
6 6
7 var handler = {}; 7 var handler = {};
8 var target = {a:1}; 8 var target = {a:1};
9 var proxy = new Proxy(target, handler); 9 var proxy = new Proxy(target, handler);
10 10
11 assertTrue(target.hasOwnProperty('a')); 11 assertTrue(target.hasOwnProperty('a'));
12 assertTrue(proxy.hasOwnProperty('a')); 12 assertTrue(proxy.hasOwnProperty('a'));
13 assertFalse(target.hasOwnProperty('b')); 13 assertFalse(target.hasOwnProperty('b'));
14 assertFalse(proxy.hasOwnProperty('b')); 14 assertFalse(proxy.hasOwnProperty('b'));
15 15
16 16
17 handler.has = function() { 17 handler.has = function() { assertUnreachable() }
18 return false; 18 handler.getOwnPropertyDescriptor = function () {}
19 } 19
20 assertTrue(target.hasOwnProperty('a')); 20 assertTrue(target.hasOwnProperty('a'));
21 assertFalse(proxy.hasOwnProperty('a')); 21 assertFalse(proxy.hasOwnProperty('a'));
22 assertFalse(target.hasOwnProperty('b')); 22 assertFalse(target.hasOwnProperty('b'));
23 assertFalse(proxy.hasOwnProperty('b')); 23 assertFalse(proxy.hasOwnProperty('b'));
24 24
25 handler.has = function() { 25
26 return true; 26 handler.getOwnPropertyDescriptor = function() { return {configurable: true} }
27 } 27
28 assertTrue(target.hasOwnProperty('a')); 28 assertTrue(target.hasOwnProperty('a'));
29 assertTrue(proxy.hasOwnProperty('a')); 29 assertTrue(proxy.hasOwnProperty('a'));
30 assertFalse(target.hasOwnProperty('b')); 30 assertFalse(target.hasOwnProperty('b'));
31 assertTrue(proxy.hasOwnProperty('b')); 31 assertTrue(proxy.hasOwnProperty('b'));
32 32
33 handler.has = function() { 33
34 throw Error(); 34 handler.getOwnPropertyDescriptor = function() { throw Error(); }
35 } 35
36 assertTrue(target.hasOwnProperty('a')); 36 assertTrue(target.hasOwnProperty('a'));
37 assertThrows(function(){ proxy.hasOwnProperty('a') }, Error); 37 assertThrows(function(){ proxy.hasOwnProperty('a') }, Error);
38 assertFalse(target.hasOwnProperty('b')); 38 assertFalse(target.hasOwnProperty('b'));
39 assertThrows(function(){ proxy.hasOwnProperty('b') }, Error); 39 assertThrows(function(){ proxy.hasOwnProperty('b') }, Error);
OLDNEW
« no previous file with comments | « test/mjsunit/harmony/proxies.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698