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: --expose-debug-as debug --harmony-proxies | 5 // Flags: --expose-debug-as debug --harmony-proxies |
6 | 6 |
7 Debug = debug.Debug | 7 Debug = debug.Debug |
8 | 8 |
9 var exception = null; | 9 var exception = null; |
10 var log = []; | 10 var log = []; |
(...skipping 18 matching lines...) Expand all Loading... |
29 var handler = { | 29 var handler = { |
30 has: function(target, name) { | 30 has: function(target, name) { |
31 return true; // h | 31 return true; // h |
32 }, // i | 32 }, // i |
33 get: function(target, name) { | 33 get: function(target, name) { |
34 return 42; // j | 34 return 42; // j |
35 }, // k | 35 }, // k |
36 set: function(target, name, value) { | 36 set: function(target, name, value) { |
37 return false; // l | 37 return false; // l |
38 }, // m | 38 }, // m |
39 enumerate: function(target) { | |
40 function* keys() { // n | |
41 yield "foo"; // o | |
42 yield "bar"; // p | |
43 } // q | |
44 return keys(); // r | |
45 }, // s | |
46 } | 39 } |
47 | 40 |
48 var proxy = new Proxy(target, handler); | 41 var proxy = new Proxy(target, handler); |
49 | 42 |
50 Debug.setListener(listener); | 43 Debug.setListener(listener); |
51 debugger; // a | 44 debugger; // a |
52 var has = "step" in proxy; // b | 45 var has = "step" in proxy; // b |
53 var get = proxy.step; // c | 46 var get = proxy.step; // c |
54 proxy.step = 43; // d | 47 proxy.step = 43; // d |
55 for (var i in proxy) { // e | |
56 log.push(i); // f | |
57 } | |
58 | 48 |
59 Debug.setListener(null); // g | 49 Debug.setListener(null); // g |
60 | 50 |
61 assertNull(exception); | 51 assertNull(exception); |
62 assertTrue(has); | 52 assertTrue(has); |
63 assertEquals(42, get); | 53 assertEquals(42, get); |
64 | 54 |
65 assertEquals([ | 55 assertEquals([ |
66 "a0", | 56 "a0", |
67 "b0", "h4b20", "i2b20", // [[Has]] | 57 "b0", "h4b20", "i2b20", // [[Has]] |
68 "c0", "j4c15", "k2c15", // [[Get]] | 58 "c0", "j4c15", "k2c15", // [[Get]] |
69 "d0", "l4d11", "m2d11", // [[Set]] | 59 "d0", "l4d11", "m2d11", // [[Set]] |
70 "e14", "r4e14", "q4r11e14", "s2e14", // for-in [[Enumerate]] | |
71 "o6e14", "q4e14", "p6e14", "q4e14", "q4e14", // exhaust iterator | |
72 "e9", // for-in-body | |
73 "h4e9","i2e9", // [[Has]] property | |
74 "f2","foo", "e9", // for-in-body | |
75 "h4e9","i2e9", // [[Has]]property | |
76 "f2","bar", "e9", // for-in-body | |
77 "g0" | 60 "g0" |
78 ], log); | 61 ], log); |
OLD | NEW |