| 
									
										
										
										
											2021-06-12 23:58:03 +03:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * Copyright (c) 2021, Idan Horowitz <idan.horowitz@serenityos.org> | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * SPDX-License-Identifier: BSD-2-Clause | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <LibJS/Runtime/GlobalObject.h>
 | 
					
						
							|  |  |  | #include <LibJS/Runtime/MapIterator.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace JS { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | MapIterator* MapIterator::create(GlobalObject& global_object, Map& map, Object::PropertyKind iteration_kind) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2021-06-19 23:21:08 +01:00
										 |  |  |     return global_object.heap().allocate<MapIterator>(global_object, map, iteration_kind, *global_object.map_iterator_prototype()); | 
					
						
							| 
									
										
										
										
											2021-06-12 23:58:03 +03:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-06-19 23:21:08 +01:00
										 |  |  | MapIterator::MapIterator(Map& map, Object::PropertyKind iteration_kind, Object& prototype) | 
					
						
							| 
									
										
										
										
											2021-06-12 23:58:03 +03:00
										 |  |  |     : Object(prototype) | 
					
						
							|  |  |  |     , m_map(map) | 
					
						
							|  |  |  |     , m_iteration_kind(iteration_kind) | 
					
						
							|  |  |  |     , m_iterator(map.entries().begin()) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | MapIterator::~MapIterator() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void MapIterator::visit_edges(Cell::Visitor& visitor) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     Base::visit_edges(visitor); | 
					
						
							|  |  |  |     visitor.visit(&m_map); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } |