mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 883333, part 2 - Rearrange statement parsers to the order they appear in the ES6 draft. r=Waldo.
--HG-- extra : rebase_source : cb0f15ae7d085a95879e26a52102ac1d1ed16c60
This commit is contained in:
parent
65f267b64a
commit
2f1998b57c
@ -199,35 +199,37 @@ class FullParseHandler
|
||||
return new_<UnaryNode>(PNK_SEMI, JSOP_NOP, TokenPos::make(expr->pn_pos.begin, end), expr);
|
||||
}
|
||||
|
||||
ParseNode *newCaseOrDefault(uint32_t begin, ParseNode *expr, ParseNode *body) {
|
||||
TokenPos pos = TokenPos::make(begin, body->pn_pos.end);
|
||||
return new_<BinaryNode>(expr ? PNK_CASE : PNK_DEFAULT, JSOP_NOP, pos, expr, body);
|
||||
}
|
||||
|
||||
ParseNode *newContinue(PropertyName *label, uint32_t begin, uint32_t end) {
|
||||
return new_<ContinueStatement>(label, begin, end);
|
||||
}
|
||||
|
||||
ParseNode *newBreak(PropertyName *label, uint32_t begin, uint32_t end) {
|
||||
return new_<BreakStatement>(label, begin, end);
|
||||
}
|
||||
|
||||
ParseNode *newReturnStatement(ParseNode *expr, const TokenPos &pos) {
|
||||
JS_ASSERT_IF(expr, pos.encloses(expr->pn_pos));
|
||||
return new_<UnaryNode>(PNK_RETURN, JSOP_RETURN, pos, expr);
|
||||
}
|
||||
|
||||
ParseNode *newLabeledStatement(PropertyName *label, ParseNode *stmt, uint32_t begin) {
|
||||
return new_<LabeledStatement>(label, stmt, begin);
|
||||
}
|
||||
|
||||
ParseNode *newThrowStatement(ParseNode *expr, const TokenPos &pos) {
|
||||
JS_ASSERT(pos.encloses(expr->pn_pos));
|
||||
return new_<UnaryNode>(PNK_THROW, JSOP_THROW, pos, expr);
|
||||
}
|
||||
|
||||
ParseNode *newLabeledStatement(PropertyName *label, ParseNode *stmt, uint32_t begin) {
|
||||
return new_<LabeledStatement>(label, stmt, begin);
|
||||
}
|
||||
|
||||
ParseNode *newCaseOrDefault(uint32_t begin, ParseNode *expr, ParseNode *body) {
|
||||
TokenPos pos = TokenPos::make(begin, body->pn_pos.end);
|
||||
return new_<BinaryNode>(expr ? PNK_CASE : PNK_DEFAULT, JSOP_NOP, pos, expr, body);
|
||||
}
|
||||
|
||||
ParseNode *newBreak(PropertyName *label, uint32_t begin, uint32_t end) {
|
||||
return new_<BreakStatement>(label, begin, end);
|
||||
}
|
||||
ParseNode *newContinue(PropertyName *label, uint32_t begin, uint32_t end) {
|
||||
return new_<ContinueStatement>(label, begin, end);
|
||||
}
|
||||
|
||||
ParseNode *newDebuggerStatement(const TokenPos &pos) {
|
||||
return new_<DebuggerStatement>(pos);
|
||||
}
|
||||
|
||||
ParseNode *newPropertyAccess(ParseNode *pn, PropertyName *name, uint32_t end) {
|
||||
return new_<PropertyAccess>(pn, name, pn->pn_pos.begin, end);
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -417,11 +417,11 @@ struct Parser : private AutoGCRooter, public StrictModeGetter
|
||||
Node functionExpr();
|
||||
Node statements();
|
||||
|
||||
Node switchStatement();
|
||||
Node forStatement();
|
||||
Node switchStatement();
|
||||
Node withStatement();
|
||||
Node labeledStatement();
|
||||
Node tryStatement();
|
||||
Node withStatement();
|
||||
#if JS_HAS_BLOCK_SCOPE
|
||||
Node letStatement();
|
||||
#endif
|
||||
|
@ -106,27 +106,23 @@ class SyntaxParseHandler
|
||||
return expr == NodeString ? NodeStringExprStatement : NodeGeneric;
|
||||
}
|
||||
|
||||
Node newCaseOrDefault(uint32_t begin, Node expr, Node body) { return NodeGeneric; }
|
||||
Node newContinue(PropertyName *label, uint32_t begin, uint32_t end) { return NodeGeneric; }
|
||||
Node newBreak(PropertyName *label, uint32_t begin, uint32_t end) { return NodeGeneric; }
|
||||
Node newReturnStatement(Node expr, const TokenPos &pos) { return NodeGeneric; }
|
||||
Node newThrowStatement(Node expr, const TokenPos &pos) { return NodeGeneric; }
|
||||
|
||||
Node newLabeledStatement(PropertyName *label, Node stmt, uint32_t begin) {
|
||||
return NodeGeneric;
|
||||
}
|
||||
Node newCaseOrDefault(uint32_t begin, Node expr, Node body) {
|
||||
return NodeGeneric;
|
||||
}
|
||||
Node newBreak(PropertyName *label, uint32_t begin, uint32_t end) {
|
||||
return NodeGeneric;
|
||||
}
|
||||
Node newContinue(PropertyName *label, uint32_t begin, uint32_t end) {
|
||||
return NodeGeneric;
|
||||
}
|
||||
|
||||
Node newThrowStatement(Node expr, const TokenPos &pos) { return NodeGeneric; }
|
||||
Node newDebuggerStatement(const TokenPos &pos) { return NodeGeneric; }
|
||||
Node newPropertyAccess(Node pn, PropertyName *name, uint32_t end)
|
||||
{
|
||||
|
||||
Node newPropertyAccess(Node pn, PropertyName *name, uint32_t end) {
|
||||
lastAtom = name;
|
||||
return NodeGetProp;
|
||||
}
|
||||
|
||||
Node newPropertyByValue(Node pn, Node kid, uint32_t end) { return NodeLValue; }
|
||||
|
||||
bool addCatchBlock(Node catchList, Node letBlock,
|
||||
|
Loading…
Reference in New Issue
Block a user