1--TEST--
2Self-referencing map entry GC - 002
3--FILE--
4<?php
5
6class Value {
7    public function __construct(public readonly string $value) {
8    }
9}
10
11$map = new WeakMap();
12$obj = new Value('a');
13$map[$obj] = [$obj];
14
15gc_collect_cycles();
16
17var_dump($map);
18
19$obj = null;
20gc_collect_cycles();
21
22var_dump($map);
23
24--EXPECTF--
25object(WeakMap)#%d (1) {
26  [0]=>
27  array(2) {
28    ["key"]=>
29    object(Value)#%d (1) {
30      ["value"]=>
31      string(1) "a"
32    }
33    ["value"]=>
34    array(1) {
35      [0]=>
36      object(Value)#%d (1) {
37        ["value"]=>
38        string(1) "a"
39      }
40    }
41  }
42}
43object(WeakMap)#1 (0) {
44}
45