| 
									
										
										
										
											2021-06-09 19:23:04 +03:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * Copyright (c) 2021, Idan Horowitz <idan.horowitz@serenityos.org> | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * SPDX-License-Identifier: BSD-2-Clause | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <LibJS/Runtime/WeakSet.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace JS { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | WeakSet* WeakSet::create(GlobalObject& global_object) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return global_object.heap().allocate<WeakSet>(global_object, *global_object.weak_set_prototype()); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | WeakSet::WeakSet(Object& prototype) | 
					
						
							|  |  |  |     : Object(prototype) | 
					
						
							| 
									
										
										
										
											2021-06-12 05:23:33 +03:00
										 |  |  |     , WeakContainer(heap()) | 
					
						
							| 
									
										
										
										
											2021-06-09 19:23:04 +03:00
										 |  |  | { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-10-05 18:44:31 +02:00
										 |  |  | void WeakSet::remove_dead_cells(Badge<Heap>) | 
					
						
							| 
									
										
										
										
											2021-06-09 20:10:47 +03:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2022-01-05 16:48:05 +01:00
										 |  |  |     m_values.remove_all_matching([](Cell* cell) { | 
					
						
							|  |  |  |         return cell->state() != Cell::State::Live; | 
					
						
							|  |  |  |     }); | 
					
						
							| 
									
										
										
										
											2021-06-09 19:23:04 +03:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } |