diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2019-05-02 14:57:16 +0200 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2019-05-02 15:04:03 +0200 |
commit | f3e5bbe6f37ce52a9ecd42812389e6aaf3aa2892 (patch) | |
tree | 4d7baab746e966624ee4557c2153e5099cbbcbd3 /Zend/zend_vm_execute.h | |
parent | eaab0a2b6f6f61bc0b8c42579a74a626b179a070 (diff) | |
download | php-git-f3e5bbe6f37ce52a9ecd42812389e6aaf3aa2892.tar.gz |
Implement arrow functions
Per RFC: https://wiki.php.net/rfc/arrow_functions_v2
Co-authored-by: Levi Morrison <levim@php.net>
Co-authored-by: Bob Weinand <bobwei9@hotmail.com>
Diffstat (limited to 'Zend/zend_vm_execute.h')
-rw-r--r-- | Zend/zend_vm_execute.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h index d4aac71756..e64eefe255 100644 --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@ -20716,7 +20716,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BIND_LEXICAL_SPEC_TMP_CV_HANDL } } else { var = EX_VAR(opline->op2.var); - if (UNEXPECTED(Z_ISUNDEF_P(var))) { + if (UNEXPECTED(Z_ISUNDEF_P(var)) && !(opline->extended_value & ZEND_BIND_IMPLICIT)) { SAVE_OPLINE(); var = ZVAL_UNDEFINED_OP2(); if (UNEXPECTED(EG(exception))) { @@ -20727,7 +20727,8 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BIND_LEXICAL_SPEC_TMP_CV_HANDL Z_TRY_ADDREF_P(var); } - zend_closure_bind_var_ex(closure, (opline->extended_value & ~ZEND_BIND_REF), var); + zend_closure_bind_var_ex(closure, + (opline->extended_value & ~(ZEND_BIND_REF|ZEND_BIND_IMPLICIT)), var); ZEND_VM_NEXT_OPCODE(); } |