| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
RFC is documented here: https://wiki.php.net/rfc/return_types
|
| |
|
|
|
|
| |
The return value long(1) is an IS_CONST operand now.
|
|
|
|
| |
cases, ArrayAccess objects handling is enabled for all cases, ZEND_FETCH_DIM_TMP_VAR opcode is renamed into ZEND_FETCH_LIST, ZEND_FETCH_ADD_LOCK flag is removed).
|
|
|
|
|
| |
INIT_STRING has been implemented as an UNUSED op1 to ADD_* for
some time now.
|
|
|
|
|
| |
Abstract methods are being prevented from being called in DO_FCALL
etc.
|
|\
| |
| |
| |
| |
| |
| |
| | |
* coalesce_operator:
Extended coalesce operator test case for ordering/short-circuiting
Ensure not evaluated twice
Added test
Initial coalesce operator implementation
|
| | |
|
|/
|
|
| |
Removed ZEND_SWITCH_FREE opcode (ZEND_FREE used instead).
|
|
|
|
| |
exacly the same as ZEND_QM_ASSIGN and ZEND_JMP_SET)
|
| |
|
| |
|
| |
|
|
|
|
| |
In some rare cases it leads to insignificant changes in error messages.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
In PHP-5.6 and below each argument passed to user function was copies on VM stack twice.
Now we always have ZEND_INIT_FCALL (or simular) opcode that pushes "call frame" on top of VM stack.
"Call frame" is actually the same zend_execute_data structure.
All the following ZEND_SEND instructions push arguments on top of the stack in a way that they directly comes into corresponding CV variables of the called frame. Extra arguments are copied at the end of stack frame (after all CV and TMP variables) on function enterance.
There are two minor incompatibilities:
1) It's not allowed to decalre functions redefining arguments e.g. "function foo($a,$a) {}".
2) func_get_arg() and func_get args() return the current value of argument and not the original value that was sent.
|
|
|
|
| |
that caused a lot of useles checks
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixed recognition of the operator
Added opcode, still doing multiply instead of pow()
opcode now always returns int(42)
The right answer, but always a float
Yanked code from pow() implementation.
Should not handle negative long as exponent ourselves
Added test cases from pow()
Moved precedence higher than '~'
Added GMP operator overloading
Added ZEND_ASSIGN_POW (**=) operator.
Added pow() as a language construct.
Adjusted test cases for changed precedence.
Reduced pow() to shell function around ZEND_API pow_function()
Reduced test case to only contain edge cases
Added overloading test case
Moved unary minus above T_POW
Revert "Added pow() as a language construct."
Bad bad bad idea.
This reverts commit f60b98cf7a8371233d800a6faa286ddba4432d02.
Reverted unary minus behaviour due to previous revert.
Convert arrays to int(0)
Exponent with array as a base becomes int(0)
Rebase against master
Fixed tokenizer test case
|
|
|
|
| |
RFC: https://wiki.php.net/rfc/argument_unpacking
|
| |
|
|\ |
|
| |\
| | |
| | |
| | |
| | | |
Conflicts:
Zend/zend_vm_opcodes.c
|
| | |
| | |
| | |
| | |
| | | |
Conflicts:
Zend/zend_vm_opcodes.h
|
|\ \ \
| |_|/
|/| |
| | |
| | |
| | | |
* PHP-5.4:
stop warnings from unused opcode map
- BFN
|
| | | |
|
|\ \ \
| |/ /
| | /
| |/
|/| |
Conflicts:
Zend/zend_vm_opcodes.c
|
| | |
|
|/
|
|
|
| |
Conflicts:
Zend/zend_vm_opcodes.h
|
|
|