summaryrefslogtreecommitdiff
path: root/js/src/frontend/Parser.h
diff options
context:
space:
mode:
authorGaming4JC <g4jc@hyperbola.info>2019-07-14 12:54:05 -0400
committerGaming4JC <g4jc@hyperbola.info>2019-07-18 22:38:44 -0400
commitb02f52f8a7cfedb92b1f6cf9a09c0a220b68b2f4 (patch)
tree6efda864c467ea694d1eb52cc5af2e342bd40444 /js/src/frontend/Parser.h
parente93a48121a1a14ac228bebe362e7c27b1aadd4d5 (diff)
downloaduxp-b02f52f8a7cfedb92b1f6cf9a09c0a220b68b2f4.tar.gz
1303703 - Part 1: Separate binding pattern parsing from object/array literal parsing.
Diffstat (limited to 'js/src/frontend/Parser.h')
-rw-r--r--js/src/frontend/Parser.h30
1 files changed, 19 insertions, 11 deletions
diff --git a/js/src/frontend/Parser.h b/js/src/frontend/Parser.h
index b1d3bdee06..9b6387c9f8 100644
--- a/js/src/frontend/Parser.h
+++ b/js/src/frontend/Parser.h
@@ -1498,17 +1498,25 @@ class Parser final : public ParserBase, private JS::AutoGCRooter
Node objectLiteral(YieldHandling yieldHandling, PossibleError* possibleError);
- // Top-level entrypoint into destructuring pattern checking/name-analyzing.
- bool checkDestructuringPattern(Node pattern, mozilla::Maybe<DeclarationKind> maybeDecl,
- PossibleError* possibleError = nullptr);
-
- // Recursive methods for checking/name-analyzing subcomponents of a
- // destructuring pattern. The array/object methods *must* be passed arrays
- // or objects. The name method may be passed anything but will report an
- // error if not passed a name.
- bool checkDestructuringArray(Node arrayPattern, mozilla::Maybe<DeclarationKind> maybeDecl);
- bool checkDestructuringObject(Node objectPattern, mozilla::Maybe<DeclarationKind> maybeDecl);
- bool checkDestructuringName(Node expr, mozilla::Maybe<DeclarationKind> maybeDecl);
+ Node bindingInitializer(Node lhs, YieldHandling yieldHandling);
+ Node bindingIdentifier(DeclarationKind kind, YieldHandling yieldHandling);
+ Node bindingIdentifierOrPattern(DeclarationKind kind, YieldHandling yieldHandling,
+ TokenKind tt);
+ Node objectBindingPattern(DeclarationKind kind, YieldHandling yieldHandling);
+ Node arrayBindingPattern(DeclarationKind kind, YieldHandling yieldHandling);
+
+ // Top-level entrypoint into destructuring assignment pattern checking and
+ // name-analyzing.
+ bool checkDestructuringAssignmentPattern(Node pattern,
+ PossibleError* possibleError = nullptr);
+
+ // Recursive methods for checking/name-analyzing subcomponents of an
+ // destructuring assignment pattern. The array/object methods *must* be
+ // passed arrays or objects. The name method may be passed anything but
+ // will report an error if not passed a name.
+ bool checkDestructuringAssignmentArray(Node arrayPattern);
+ bool checkDestructuringAssignmentObject(Node objectPattern);
+ bool checkDestructuringAssignmentName(Node expr);
Node newNumber(const Token& tok) {
return handler.newNumber(tok.number(), tok.decimalPoint(), tok.pos);