| 34 | |
| 35 | |
| 36 | class VisitorInfo: |
| 37 | visited: Map[Any, int] |
| 38 | last_id: int |
| 39 | |
| 40 | def __init__(self) -> None: |
| 41 | self.visited = Map() |
| 42 | self.last_id = 0 |
| 43 | |
| 44 | def visit(self, obj: Any) -> int: |
| 45 | assert obj not in self.visited |
| 46 | self.last_id += 1 |
| 47 | self.visited[obj] = self.last_id |
| 48 | return self.last_id |
| 49 | |
| 50 | |
| 51 | class JSHandle(ChannelOwner): |