1--TEST--
2Self-referencing map entry GC - 005
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$value = [$obj];
14$map[$obj] = $value;
15$obj = null;
16
17gc_collect_cycles();
18
19var_dump($map);
20
21gc_collect_cycles();
22
23$value = null;
24
25gc_collect_cycles();
26
27var_dump($map);
28
29--EXPECTF--
30object(WeakMap)#%d (1) {
31  [0]=>
32  array(2) {
33    ["key"]=>
34    object(Value)#%d (1) {
35      ["value"]=>
36      string(1) "a"
37    }
38    ["value"]=>
39    array(1) {
40      [0]=>
41      object(Value)#%d (1) {
42        ["value"]=>
43        string(1) "a"
44      }
45    }
46  }
47}
48object(WeakMap)#1 (0) {
49}
50