implement AST_Yield spidermonkey AST

This commit is contained in:
Fábio Santos 2018-03-21 20:28:40 +00:00
parent a69b51e25d
commit 2655e84f0d
3 changed files with 10 additions and 3 deletions

View File

@ -464,6 +464,7 @@
map("ForInStatement", AST_ForIn, "left>init, right>object, body>body");
map("ForOfStatement", AST_ForOf, "left>init, right>object, body>body");
map("AwaitExpression", AST_Await, "argument>expression");
map("YieldExpression", AST_Yield, "argument>expression, delegate=is_star");
map("DebuggerStatement", AST_Debugger);
map("VariableDeclarator", AST_VarDef, "id>name, init>value");
map("CatchClause", AST_Catch, "param>argname, body%body");

View File

@ -1726,6 +1726,7 @@ function parse($TEXT, options) {
croak("Unexpected yield expression outside generator function",
S.prev.line, S.prev.col, S.prev.pos);
}
var start = S.token;
var star = false;
var has_expression = true;
@ -1749,8 +1750,10 @@ function parse($TEXT, options) {
}
return new AST_Yield({
start : start,
is_star : star,
expression : has_expression ? expression() : null
expression : has_expression ? expression() : null,
end : prev()
});
}

View File

@ -17,10 +17,13 @@ export {A1, B1} from "a.js";
export {C};
(a, [b], {c:foo = 3}, ...d) => null;
() => {}
() => {};
async function f() { }
function*gen() { }
function*gen() {
yield 1;
yield* 2;
}
class Class extends Object {
constructor(...args) {