mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 12:38:12 +00:00
LibJS: Correctly parse yield-from expressions
This commit implements parsing for `yield *expr`, and the multiple ways something can or can't be parsed like that. Also makes yield-from a TODO in the bytecode generator. Behold, the glory of javascript syntax: ```js // 'yield' = expression in generators. function* foo() { yield *bar; // <- Syntax error here, expression can't start with * } // 'yield' = identifier anywhere else. function foo() { yield *bar; // Perfectly fine, this is just `yield * bar` } ```
This commit is contained in:
parent
d374295a26
commit
3194177dce
5 changed files with 67 additions and 42 deletions
|
@ -721,6 +721,9 @@ void YieldExpression::generate_bytecode(Bytecode::Generator& generator) const
|
|||
{
|
||||
VERIFY(generator.is_in_generator_function());
|
||||
|
||||
if (m_is_yield_from)
|
||||
TODO();
|
||||
|
||||
if (m_argument)
|
||||
m_argument->generate_bytecode(generator);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue