From f15ea9fb518cd5827471ba9820dcc8b575264f25 Mon Sep 17 00:00:00 2001 From: Jason Orendorff Date: Wed, 10 Jul 2013 08:14:03 -0500 Subject: [PATCH] Bug 880447 - Permit 'yield yield expr;'. r=till. --- js/src/frontend/Parser.cpp | 3 +-- js/src/jit-test/tests/generators/yield-yield.js | 12 ++++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 js/src/jit-test/tests/generators/yield-yield.js diff --git a/js/src/frontend/Parser.cpp b/js/src/frontend/Parser.cpp index 6de88dfe5a62..99f598bf4421 100644 --- a/js/src/frontend/Parser.cpp +++ b/js/src/frontend/Parser.cpp @@ -4416,8 +4416,7 @@ Parser::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)) diff --git a/js/src/jit-test/tests/generators/yield-yield.js b/js/src/jit-test/tests/generators/yield-yield.js new file mode 100644 index 000000000000..123abc5b7757 --- /dev/null +++ b/js/src/jit-test/tests/generators/yield-yield.js @@ -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);