xref: /PHP-8.3/ext/opcache/tests/jit/closure_001.phpt (revision 45cb3f91)
1--TEST--
2Closures should be always called with ZEND_ACC_CLOSURE flag set
3--INI--
4opcache.enable=1
5opcache.enable_cli=1
6opcache.file_update_protection=0
7opcache.jit_buffer_size=1M
8opcache.protect_memory=1
9opcache.jit_hot_func=2
10--EXTENSIONS--
11opcache
12--FILE--
13<?php
14class Foo {
15}
16
17function bar() {
18    return function () {
19        return function () {
20            return function () {
21                return 42;
22            };
23        };
24    };
25}
26
27$foo = new Foo;
28$f = bar();
29
30var_dump($f->call($foo));
31var_dump($f->call($foo));
32var_dump($f());
33?>
34--EXPECT--
35object(Closure)#3 (1) {
36  ["this"]=>
37  object(Foo)#1 (0) {
38  }
39}
40object(Closure)#3 (1) {
41  ["this"]=>
42  object(Foo)#1 (0) {
43  }
44}
45object(Closure)#3 (0) {
46}
47