diff options
author | wolfbeast <mcwerewolf@wolfbeast.com> | 2020-02-27 20:09:26 +0100 |
---|---|---|
committer | wolfbeast <mcwerewolf@wolfbeast.com> | 2020-04-14 13:00:11 +0200 |
commit | e7841ab5d740eb70f2975212de4a1066d8714438 (patch) | |
tree | d699b22a0de4ab35e953c6fe205c90374956b30b /js/src/frontend/ParseNode.cpp | |
parent | dba09fa5c43276bb455cc4da6bd0ec302f798189 (diff) | |
download | UXP-e7841ab5d740eb70f2975212de4a1066d8714438.tar UXP-e7841ab5d740eb70f2975212de4a1066d8714438.tar.gz UXP-e7841ab5d740eb70f2975212de4a1066d8714438.tar.lz UXP-e7841ab5d740eb70f2975212de4a1066d8714438.tar.xz UXP-e7841ab5d740eb70f2975212de4a1066d8714438.zip |
Issue #1465 - Implement optional catch binding.
Diffstat (limited to 'js/src/frontend/ParseNode.cpp')
-rw-r--r-- | js/src/frontend/ParseNode.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/js/src/frontend/ParseNode.cpp b/js/src/frontend/ParseNode.cpp index 42ae9451a..e01a41067 100644 --- a/js/src/frontend/ParseNode.cpp +++ b/js/src/frontend/ParseNode.cpp @@ -409,13 +409,14 @@ PushNodeChildren(ParseNode* pn, NodeStack* stack) return PushResult::Recyclable; } - // A catch node has first kid as catch-variable pattern, the second kid - // as catch condition (which, if non-null, records the |<cond>| in - // SpiderMonkey's |catch (e if <cond>)| extension), and third kid as the - // statements in the catch block. + // A catch node has an (optional) first kid as catch-variable pattern, + // the second kid as (optional) catch condition (which, records the + // |<cond>| in SpiderMonkey's |catch (e if <cond>)| extension), and + // third kid as the statements in the catch block. case PNK_CATCH: { MOZ_ASSERT(pn->isArity(PN_TERNARY)); - stack->push(pn->pn_kid1); + if (pn->pn_kid1) + stack->push(pn->pn_kid1); if (pn->pn_kid2) stack->push(pn->pn_kid2); stack->push(pn->pn_kid3); |