OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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 --expose-gc | 5 // Flags: --expose-debug-as debug --expose-gc |
6 | 6 |
7 function testMapMirror(mirror) { | 7 function testMapMirror(mirror) { |
8 // Create JSON representation. | 8 // Create JSON representation. |
9 var serializer = debug.MakeMirrorSerializer(); | 9 var serializer = debug.MakeMirrorSerializer(); |
10 var json = JSON.stringify(serializer.serializeValue(mirror)); | 10 var json = JSON.stringify(serializer.serializeValue(mirror)); |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
44 var o2 = new Object(); | 44 var o2 = new Object(); |
45 var o3 = new Object(); | 45 var o3 = new Object(); |
46 | 46 |
47 // Test the mirror object for Maps | 47 // Test the mirror object for Maps |
48 var map = new Map(); | 48 var map = new Map(); |
49 map.set(o1, 11); | 49 map.set(o1, 11); |
50 map.set(o2, 22); | 50 map.set(o2, 22); |
51 map.delete(o1); | 51 map.delete(o1); |
52 var mapMirror = debug.MakeMirror(map); | 52 var mapMirror = debug.MakeMirror(map); |
53 testMapMirror(mapMirror); | 53 testMapMirror(mapMirror); |
| 54 |
54 var entries = mapMirror.entries(); | 55 var entries = mapMirror.entries(); |
55 assertEquals(1, entries.length); | 56 assertEquals(1, entries.length); |
56 assertSame(o2, entries[0].key); | 57 assertSame(o2, entries[0].key); |
57 assertEquals(22, entries[0].value); | 58 assertEquals(22, entries[0].value); |
58 map.set(o1, 33); | 59 map.set(o1, 33); |
59 map.set(o3, o2); | 60 map.set(o3, o2); |
60 map.delete(o2); | 61 map.delete(o2); |
61 map.set(undefined, 44); | 62 map.set(undefined, 44); |
| 63 |
62 entries = mapMirror.entries(); | 64 entries = mapMirror.entries(); |
63 assertEquals(3, entries.length); | 65 assertEquals(3, entries.length); |
64 assertSame(o1, entries[0].key); | 66 assertSame(o1, entries[0].key); |
65 assertEquals(33, entries[0].value); | 67 assertEquals(33, entries[0].value); |
66 assertSame(o3, entries[1].key); | 68 assertSame(o3, entries[1].key); |
67 assertSame(o2, entries[1].value); | 69 assertSame(o2, entries[1].value); |
68 assertEquals(undefined, entries[2].key); | 70 assertEquals(undefined, entries[2].key); |
69 assertEquals(44, entries[2].value); | 71 assertEquals(44, entries[2].value); |
70 | 72 |
| 73 assertEquals(3, mapMirror.entries(0).length); |
| 74 assertEquals(1, mapMirror.entries(1).length); |
| 75 assertEquals(2, mapMirror.entries(2).length); |
| 76 |
71 // Test the mirror object for Sets | 77 // Test the mirror object for Sets |
72 var set = new Set(); | 78 var set = new Set(); |
73 set.add(o1); | 79 set.add(o1); |
74 set.add(o2); | 80 set.add(o2); |
75 set.delete(o1); | 81 set.delete(o1); |
76 set.add(undefined); | 82 set.add(undefined); |
77 var setMirror = debug.MakeMirror(set); | 83 var setMirror = debug.MakeMirror(set); |
78 testSetMirror(setMirror); | 84 testSetMirror(setMirror); |
79 var values = setMirror.values(); | 85 var values = setMirror.values(); |
80 assertEquals(2, values.length); | 86 assertEquals(2, values.length); |
| 87 assertEquals(1, setMirror.values(1).length); |
81 assertSame(o2, values[0]); | 88 assertSame(o2, values[0]); |
82 assertEquals(undefined, values[1]); | 89 assertEquals(undefined, values[1]); |
83 | 90 |
84 // Test the mirror object for WeakMaps | 91 // Test the mirror object for WeakMaps |
85 var weakMap = new WeakMap(); | 92 var weakMap = new WeakMap(); |
86 weakMap.set(o1, 11); | 93 weakMap.set(o1, 11); |
87 weakMap.set(new Object(), 22); | 94 weakMap.set(new Object(), 22); |
88 weakMap.set(o3, 33); | 95 weakMap.set(o3, 33); |
89 weakMap.set(new Object(), 44); | 96 weakMap.set(new Object(), 44); |
90 var weakMapMirror = debug.MakeMirror(weakMap); | 97 var weakMapMirror = debug.MakeMirror(weakMap); |
91 testMapMirror(weakMapMirror); | 98 testMapMirror(weakMapMirror); |
92 weakMap.set(new Object(), 55); | 99 weakMap.set(new Object(), 55); |
93 assertTrue(weakMapMirror.entries().length <= 5); | 100 assertTrue(weakMapMirror.entries().length <= 5); |
94 gc(); | 101 gc(); |
95 | 102 |
96 function testWeakMapEntries(weakMapMirror) { | 103 function testWeakMapEntries(weakMapMirror) { |
97 var entries = weakMapMirror.entries(); | 104 var entries = weakMapMirror.entries(); |
98 assertEquals(2, entries.length); | 105 assertEquals(2, entries.length); |
| 106 assertEquals(2, weakMapMirror.entries(0).length); |
| 107 assertEquals(1, weakMapMirror.entries(1).length); |
99 var found = 0; | 108 var found = 0; |
100 for (var i = 0; i < entries.length; i++) { | 109 for (var i = 0; i < entries.length; i++) { |
101 if (Object.is(entries[i].key, o1)) { | 110 if (Object.is(entries[i].key, o1)) { |
102 assertEquals(11, entries[i].value); | 111 assertEquals(11, entries[i].value); |
103 found++; | 112 found++; |
104 } | 113 } |
105 if (Object.is(entries[i].key, o3)) { | 114 if (Object.is(entries[i].key, o3)) { |
106 assertEquals(33, entries[i].value); | 115 assertEquals(33, entries[i].value); |
107 found++; | 116 found++; |
108 } | 117 } |
(...skipping 13 matching lines...) Expand all Loading... |
122 weakSet.add(o3); | 131 weakSet.add(o3); |
123 weakSet.delete(o2); | 132 weakSet.delete(o2); |
124 var weakSetMirror = debug.MakeMirror(weakSet); | 133 var weakSetMirror = debug.MakeMirror(weakSet); |
125 testSetMirror(weakSetMirror); | 134 testSetMirror(weakSetMirror); |
126 assertTrue(weakSetMirror.values().length <= 5); | 135 assertTrue(weakSetMirror.values().length <= 5); |
127 gc(); | 136 gc(); |
128 | 137 |
129 function testWeakSetValues(weakSetMirror) { | 138 function testWeakSetValues(weakSetMirror) { |
130 var values = weakSetMirror.values(); | 139 var values = weakSetMirror.values(); |
131 assertEquals(2, values.length); | 140 assertEquals(2, values.length); |
| 141 assertEquals(2, weakSetMirror.values(0).length); |
| 142 assertEquals(1, weakSetMirror.values(1).length); |
132 var found = 0; | 143 var found = 0; |
133 for (var i = 0; i < values.length; i++) { | 144 for (var i = 0; i < values.length; i++) { |
134 if (Object.is(values[i], o1)) { | 145 if (Object.is(values[i], o1)) { |
135 found++; | 146 found++; |
136 } | 147 } |
137 if (Object.is(values[i], o3)) { | 148 if (Object.is(values[i], o3)) { |
138 found++; | 149 found++; |
139 } | 150 } |
140 } | 151 } |
141 assertEquals(2, found); | 152 assertEquals(2, found); |
142 } | 153 } |
143 | 154 |
144 testWeakSetValues(weakSetMirror); | 155 testWeakSetValues(weakSetMirror); |
OLD | NEW |