xref: /PHP-8.2/ext/opcache/tests/jit/closure_001.phpt (revision c16ad918)
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.protect_memory=1
8opcache.jit_hot_func=2
9--EXTENSIONS--
10opcache
11--FILE--
12<?php
13class Foo {
14}
15
16function bar() {
17    return function () {
18        return function () {
19            return function () {
20                return 42;
21            };
22        };
23    };
24}
25
26$foo = new Foo;
27$f = bar();
28
29var_dump($f->call($foo));
30var_dump($f->call($foo));
31var_dump($f());
32?>
33--EXPECT--
34object(Closure)#3 (1) {
35  ["this"]=>
36  object(Foo)#1 (0) {
37  }
38}
39object(Closure)#3 (1) {
40  ["this"]=>
41  object(Foo)#1 (0) {
42  }
43}
44object(Closure)#3 (0) {
45}
46