summaryrefslogtreecommitdiff
path: root/Zend/zend_vm_execute.h
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2019-05-02 14:57:16 +0200
committerNikita Popov <nikita.ppv@gmail.com>2019-05-02 15:04:03 +0200
commitf3e5bbe6f37ce52a9ecd42812389e6aaf3aa2892 (patch)
tree4d7baab746e966624ee4557c2153e5099cbbcbd3 /Zend/zend_vm_execute.h
parenteaab0a2b6f6f61bc0b8c42579a74a626b179a070 (diff)
downloadphp-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.h5
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();
}