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 #include "src/v8.h" | 5 #include "src/v8.h" |
6 | 6 |
7 #include "src/arguments.h" | 7 #include "src/arguments.h" |
8 #include "src/runtime/runtime-utils.h" | 8 #include "src/runtime/runtime-utils.h" |
9 | 9 |
10 | 10 |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
75 HandleScope scope(isolate); | 75 HandleScope scope(isolate); |
76 DCHECK(args.length() == 1); | 76 DCHECK(args.length() == 1); |
77 CONVERT_ARG_HANDLE_CHECKED(JSSet, holder, 0); | 77 CONVERT_ARG_HANDLE_CHECKED(JSSet, holder, 0); |
78 Handle<OrderedHashSet> table(OrderedHashSet::cast(holder->table())); | 78 Handle<OrderedHashSet> table(OrderedHashSet::cast(holder->table())); |
79 table = OrderedHashSet::Shrink(table); | 79 table = OrderedHashSet::Shrink(table); |
80 holder->set_table(*table); | 80 holder->set_table(*table); |
81 return isolate->heap()->undefined_value(); | 81 return isolate->heap()->undefined_value(); |
82 } | 82 } |
83 | 83 |
84 | 84 |
| 85 void Runtime::JSSetClear(Isolate* isolate, Handle<JSSet> set) { |
| 86 Handle<OrderedHashSet> table(OrderedHashSet::cast(set->table())); |
| 87 table = OrderedHashSet::Clear(table); |
| 88 set->set_table(*table); |
| 89 } |
| 90 |
| 91 |
85 RUNTIME_FUNCTION(Runtime_SetClear) { | 92 RUNTIME_FUNCTION(Runtime_SetClear) { |
86 HandleScope scope(isolate); | 93 HandleScope scope(isolate); |
87 DCHECK(args.length() == 1); | 94 DCHECK(args.length() == 1); |
88 CONVERT_ARG_HANDLE_CHECKED(JSSet, holder, 0); | 95 CONVERT_ARG_HANDLE_CHECKED(JSSet, holder, 0); |
89 Handle<OrderedHashSet> table(OrderedHashSet::cast(holder->table())); | 96 Runtime::JSSetClear(isolate, holder); |
90 table = OrderedHashSet::Clear(table); | |
91 holder->set_table(*table); | |
92 return isolate->heap()->undefined_value(); | 97 return isolate->heap()->undefined_value(); |
93 } | 98 } |
94 | 99 |
95 | 100 |
96 RUNTIME_FUNCTION(Runtime_SetIteratorInitialize) { | 101 RUNTIME_FUNCTION(Runtime_SetIteratorInitialize) { |
97 HandleScope scope(isolate); | 102 HandleScope scope(isolate); |
98 DCHECK(args.length() == 3); | 103 DCHECK(args.length() == 3); |
99 CONVERT_ARG_HANDLE_CHECKED(JSSetIterator, holder, 0); | 104 CONVERT_ARG_HANDLE_CHECKED(JSSetIterator, holder, 0); |
100 CONVERT_ARG_HANDLE_CHECKED(JSSet, set, 1); | 105 CONVERT_ARG_HANDLE_CHECKED(JSSet, set, 1); |
101 CONVERT_SMI_ARG_CHECKED(kind, 2) | 106 CONVERT_SMI_ARG_CHECKED(kind, 2) |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
167 HandleScope scope(isolate); | 172 HandleScope scope(isolate); |
168 DCHECK(args.length() == 1); | 173 DCHECK(args.length() == 1); |
169 CONVERT_ARG_HANDLE_CHECKED(JSMap, holder, 0); | 174 CONVERT_ARG_HANDLE_CHECKED(JSMap, holder, 0); |
170 Handle<OrderedHashMap> table(OrderedHashMap::cast(holder->table())); | 175 Handle<OrderedHashMap> table(OrderedHashMap::cast(holder->table())); |
171 table = OrderedHashMap::Shrink(table); | 176 table = OrderedHashMap::Shrink(table); |
172 holder->set_table(*table); | 177 holder->set_table(*table); |
173 return isolate->heap()->undefined_value(); | 178 return isolate->heap()->undefined_value(); |
174 } | 179 } |
175 | 180 |
176 | 181 |
| 182 void Runtime::JSMapClear(Isolate* isolate, Handle<JSMap> map) { |
| 183 Handle<OrderedHashMap> table(OrderedHashMap::cast(map->table())); |
| 184 table = OrderedHashMap::Clear(table); |
| 185 map->set_table(*table); |
| 186 } |
| 187 |
| 188 |
177 RUNTIME_FUNCTION(Runtime_MapClear) { | 189 RUNTIME_FUNCTION(Runtime_MapClear) { |
178 HandleScope scope(isolate); | 190 HandleScope scope(isolate); |
179 DCHECK(args.length() == 1); | 191 DCHECK(args.length() == 1); |
180 CONVERT_ARG_HANDLE_CHECKED(JSMap, holder, 0); | 192 CONVERT_ARG_HANDLE_CHECKED(JSMap, holder, 0); |
181 Handle<OrderedHashMap> table(OrderedHashMap::cast(holder->table())); | 193 Runtime::JSMapClear(isolate, holder); |
182 table = OrderedHashMap::Clear(table); | |
183 holder->set_table(*table); | |
184 return isolate->heap()->undefined_value(); | 194 return isolate->heap()->undefined_value(); |
185 } | 195 } |
186 | 196 |
187 | 197 |
188 RUNTIME_FUNCTION(Runtime_MapGrow) { | 198 RUNTIME_FUNCTION(Runtime_MapGrow) { |
189 HandleScope scope(isolate); | 199 HandleScope scope(isolate); |
190 DCHECK(args.length() == 1); | 200 DCHECK(args.length() == 1); |
191 CONVERT_ARG_HANDLE_CHECKED(JSMap, holder, 0); | 201 CONVERT_ARG_HANDLE_CHECKED(JSMap, holder, 0); |
192 Handle<OrderedHashMap> table(OrderedHashMap::cast(holder->table())); | 202 Handle<OrderedHashMap> table(OrderedHashMap::cast(holder->table())); |
193 table = OrderedHashMap::EnsureGrowable(table); | 203 table = OrderedHashMap::EnsureGrowable(table); |
(...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
439 | 449 |
440 RUNTIME_FUNCTION(Runtime_ObservationWeakMapCreate) { | 450 RUNTIME_FUNCTION(Runtime_ObservationWeakMapCreate) { |
441 HandleScope scope(isolate); | 451 HandleScope scope(isolate); |
442 DCHECK(args.length() == 0); | 452 DCHECK(args.length() == 0); |
443 Handle<JSWeakMap> weakmap = isolate->factory()->NewJSWeakMap(); | 453 Handle<JSWeakMap> weakmap = isolate->factory()->NewJSWeakMap(); |
444 Runtime::WeakCollectionInitialize(isolate, weakmap); | 454 Runtime::WeakCollectionInitialize(isolate, weakmap); |
445 return *weakmap; | 455 return *weakmap; |
446 } | 456 } |
447 } // namespace internal | 457 } // namespace internal |
448 } // namespace v8 | 458 } // namespace v8 |
OLD | NEW |