summaryrefslogtreecommitdiff
path: root/Zend/zend_compile.c
Commit message (Collapse)AuthorAgeFilesLines
...
* | | Fix short-circuting (bug #69825)Bob Weinand2015-06-141-1/+4
| | |
* | | typoXinchen Hui2015-06-131-2/+2
| | |
* | | Merge branch 'master' of git.php.net:php-srcXinchen Hui2015-06-131-0/+2
|\ \ \
| * | | Cache the class_name typehint key in arg_infoBob Weinand2015-06-121-0/+2
| | | | | | | | | | | | | | | | This leads to up to 2% improvement on one tested real world application by not having to always recalculate the lowercased string and its hash
* | | | Fixed Bug #69761 (Serialization of anonymous classes should be prevented)Xinchen Hui2015-06-131-32/+32
|/ / / | | | | | | | | | | | | | | | And also cleanup anonymous class compiling, it make no sense prefix a namespace to anonymous class name. and it is always lowcased and interned string.
* | | Fixed bug #69805 (null ptr deref and seg fault in zend_resolve_class_name)Xinchen Hui2015-06-121-2/+5
| | |
* | | Compile-time constant foldingDmitry Stogov2015-06-111-3/+30
| | |
* | | Fixed bug #69767 (Default parameter value with wrong type segfaults)Xinchen Hui2015-06-081-1/+2
| | |
* | | Fixed bug #69755 (segfault in ZEND_CONCAT_SPEC_TMPVAR_CONST_HANDLER)Dmitry Stogov2015-06-041-0/+9
| | |
* | | Fix Bug #69754 (Compile failure with ::class in array)Bob Weinand2015-06-031-2/+6
| | |
* | | Remove zend_init_listNikita Popov2015-05-291-12/+1
| | | | | | | | | | | | | | | | | | No longer used - zend_add_to_list already covers this. Also marked zend_add_to_list as static and dropped it from the header.
* | | Drop unnecessary checks for op_array->filenameNikita Popov2015-05-291-22/+8
| | | | | | | | | | | | We always require a filename.
* | | implicit declaration of function ‘zend_multibyte_yyinput_again’Xinchen Hui2015-05-261-0/+1
| | |
* | | Also unreserve T_CLASSBob Weinand2015-05-251-72/+116
| | |
* | | Merge branch 'master' of https://github.com/php/php-srcBob Weinand2015-05-251-12/+12
|\ \ \
| * | | Prevent op_array->this_var setting when method uses auto globalsDmitry Stogov2015-05-251-12/+12
| | | |
* | | | Merge context sensitive lexer RFCBob Weinand2015-05-251-2/+4
|\ \ \ \ | |/ / / |/| | |
| * | | ext tokenizer port + cleanup unused lexer statesMárcio Almada2015-04-301-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | we basically added a mechanism to store the token stream during parsing and exposed the entire parser stack on the tokenizer extension through an opt in flag: token_get_all($src, TOKEN_PARSE). this change allows easy future language enhancements regarding context aware parsing & scanning without further maintance on the tokenizer extension while solves known inconsistencies "parseless" tokenizer extension has when it handles `__halt_compiler()` presence.
* | | | Inline zend_find_builtin_typeLevi Morrison2015-05-231-15/+4
| | | | | | | | | | | | | | | | | | | | This function was used only inside of zend_find_builtin_type_by_name, which is also used only one time.
* | | | Remove duplicationLevi Morrison2015-05-231-43/+33
| | | |
* | | | Rename some variables and functionsLevi Morrison2015-05-231-9/+9
| | | | | | | | | | | | | | | | | | | | | | | | The way these are used have little to do with them being scalars; they are just tuples with names, lengths and IS_* constants. We will probably reuse these in the future with other types.
* | | | Use ZEND_JMP instead of ZEND_BRK/ZEND_CONTNikita Popov2015-05-231-0/+7
| | | | | | | | | | | | | | | | | | | | Emit necessary FREEs during compilation, convert to JMP during pass_two (we may not know target opline beforehand).
* | | | Embed break/continue depth into oplineNikita Popov2015-05-231-11/+12
| | | | | | | | | | | | | | | | | | | | | | | | Previously a separate lval literal was used - this is probably a leftover from the time where the break level could still be specified dynamically.
* | | | Move loop var stack management into begin/end loopNikita Popov2015-05-231-33/+33
| | | | | | | | | | | | | | | | | | | | Also set start to -1 in begin_loop already, so the info that a loop variable is not used is already available at compile-time.
* | | | Drop FREE_ON_RETURN flag, check brk_cont->start insteadNikita Popov2015-05-231-10/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Start >= 0 already tells us whether or not the loop has a loop variable, no need to add extra flags to opcodes. Also added a test for a case where FREE_ON_RETURN is relevant, we didn't seem to have any coverage for this.
* | | | Fix scope_is_known() for class constantsNikita Popov2015-05-211-7/+3
| | | | | | | | | | | | | | | | | | | | Here the active_op_array is still the surrounding file, but we do know the scope.
* | | | Merged FE_FETCH_R[W] with the following ASSIGN[_REF] when assigne to CV.Dmitry Stogov2015-05-131-14/+15
| | | |
* | | | Allow self etc in eval / file scopeNikita Popov2015-05-071-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes a regression from 16a9bc1ec20533c76ba992bfc64dd69e7b7d9001. Together with the recent closure related changes this should allow all usages of self etc, while previously (in PHP 5) some things like self::class did not work.
* | | | Fix compiler assumptions about self/etc wrt closuresNikita Popov2015-05-061-7/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Don't throw an error if self/parent/static are used in a closure (outside a class). * Don't propagate self:: constants into closures * Use runtime fetch for self::class in closures Fixes bug #66811.
* | | | Use ZEND_FETCH_CLASS_NAME for dynamic self::class etcNikita Popov2015-05-051-22/+8
|/ / / | | | | | | | | | | | | Extend the opcode to support getting the parent and static name and then use it for dynamic ::class resolution.
* | | Disallow self etc outside classes at compile-timeNikita Popov2015-04-291-31/+36
| | | | | | | | | | | | | | | | | | | | | Also fix a bug with return types where "self" was rejected inside a class, but not on a method. Fallout: A couple of tests changed to more generic error messages.
* | | Make it inlineXinchen Hui2015-04-281-1/+1
| | |
* | | Drop compile_class_decl return valueNikita Popov2015-04-271-7/+4
| | | | | | | | | | | | Was introduced for anon classes, but no longer needed.
* | | Pass class_entry through IS_VAR to avoid hash lookup in ZEND_NEW.Dmitry Stogov2015-04-271-2/+2
| | |
* | | Use "safe" anonymous class names. Don't show the mangled names through ↵Dmitry Stogov2015-04-271-5/+18
| | | | | | | | | | | | var_dump().
* | | Refactored using specialized opcodesDmitry Stogov2015-04-271-21/+28
| | |
* | | Fix implementing_class handlingNikita Popov2015-04-261-2/+5
| | |
* | | More cleanup (mainly retab)Nikita Popov2015-04-261-2/+3
| | |
* | | Don't issue FETCH_CLASS for anon classesNikita Popov2015-04-261-17/+4
| | |
* | | More retabNikita Popov2015-04-261-21/+21
| | |
* | | Simply anon class name generationNikita Popov2015-04-261-28/+9
| | | | | | | | | | | | Drop dead "parent" code
* | | RetabNikita Popov2015-04-261-34/+32
| | |
* | | Revert unrelated changes / rebase fixupNikita Popov2015-04-261-20/+26
| | |
* | | Rebase Joe's anon classes implementationkrakjoe2015-04-261-34/+100
| | |
* | | Fix bug #69532Nikita Popov2015-04-251-1/+2
| | | | | | | | | | | | Partial revert of ea2fc7f935d2767c127756647f47be8d420346ce.
* | | Dont't use DO_ICALL for internal functions returned by referenceDmitry Stogov2015-04-241-1/+1
| | |
* | | Slight improvementXinchen Hui2015-04-231-3/+2
| | |
* | | Fixed compiler warningKalle Sommer Nielsen2015-04-231-1/+1
| | |
* | | Use fast method to check if first arguments should be passed by reference ↵Dmitry Stogov2015-04-221-0/+26
| | | | | | | | | | | | (not tested onbig endian).
* | | Move more stuff to file_contextNikita Popov2015-04-211-101/+85
| | | | | | | | | | | | | | | | | | | | | | | | Introduce helper macro FC(x) for CG(file_context).x. end_compilation() now handled by file_context_end(). While at it, dropped zval wrapper for ticcks.