diff options
Diffstat (limited to 'Zend/zend_generators.h')
| -rw-r--r-- | Zend/zend_generators.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/Zend/zend_generators.h b/Zend/zend_generators.h index 2e70bc5a2f..42f890e78f 100644 --- a/Zend/zend_generators.h +++ b/Zend/zend_generators.h @@ -42,11 +42,26 @@ typedef struct _zend_generator { zval key; /* Return value */ zval retval; + /* Variable to put sent value into */ zval *send_target; /* Largest used integer key for auto-incrementing keys */ zend_long largest_used_integer_key; + /* Values specified by "yield *" to yield from this generator. + * This is only used for arrays or non-generator Traversables. + * This zval also uses the u2 structure in the same way as + * by-value foreach. */ + zval values; + + /* Generator that is currently yielding values. This will differ + * from the surrounding structure if "yield *" is used on a generator. */ + struct _zend_generator *current_generator; + + /* Stack of waiting generators when multiple "yield *" expressions + * are nested. */ + zend_ptr_stack generator_stack; + /* ZEND_GENERATOR_* flags */ zend_uchar flags; } zend_generator; |
