зеркало из https://github.com/mozilla/gecko-dev.git
Bug 880447 - Permit 'yield yield expr;'. r=till.
This commit is contained in:
Родитель
2618d89e0e
Коммит
f15ea9fb51
|
@ -4416,8 +4416,7 @@ Parser<ParseHandler>::returnStatementOrYieldExpression()
|
|||
if (next == TOK_ERROR)
|
||||
return null();
|
||||
if (next == TOK_EOF || next == TOK_EOL || next == TOK_SEMI || next == TOK_RC ||
|
||||
(isYield && (next == TOK_YIELD || next == TOK_RB || next == TOK_RP ||
|
||||
next == TOK_COLON || next == TOK_COMMA)))
|
||||
(isYield && (next == TOK_RB || next == TOK_RP || next == TOK_COLON || next == TOK_COMMA)))
|
||||
{
|
||||
if (isYield) {
|
||||
if (!reportWithOffset(ParseWarning, false, pos().begin, JSMSG_YIELD_WITHOUT_OPERAND))
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
// Bug 880447
|
||||
|
||||
load(libdir + "asserts.js");
|
||||
|
||||
function f() {
|
||||
yield yield 1;
|
||||
}
|
||||
|
||||
var g = f();
|
||||
assertEq(g.next(), 1);
|
||||
assertEq(g.send("hello"), "hello");
|
||||
assertThrowsValue(() => g.next(), StopIteration);
|
Загрузка…
Ссылка в новой задаче