mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-27 09:37:31 +09:00
Issue #2142 - Extend newSuperCall for JSOP_SPREADSUPERCALL
Based-on: m-c 1537936
This commit is contained in:
parent
014ebe8ae2
commit
6f56a494e6
3 changed files with 6 additions and 7 deletions
|
|
@ -345,8 +345,10 @@ FOR_EACH_PARSENODE_SUBCLASS(DECLARE_AS)
|
||||||
return new_<ListNode>(PNK_ARGUMENTS, JSOP_NOP, pos);
|
return new_<ListNode>(PNK_ARGUMENTS, JSOP_NOP, pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
BinaryNodeType newSuperCall(Node callee, Node args) {
|
BinaryNodeType newSuperCall(Node callee, Node args, bool isSpread) {
|
||||||
return new_<BinaryNode>(PNK_SUPERCALL, JSOP_SUPERCALL, callee, args);
|
JSOp op = isSpread ? JSOP_SPREADSUPERCALL : JSOP_SUPERCALL;
|
||||||
|
TokenPos pos(callee->pn_pos.begin, args->pn_pos.end);
|
||||||
|
return new_<BinaryNode>(PNK_SUPERCALL, op, pos, callee, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
BinaryNodeType newTaggedTemplate(Node tag, Node args) {
|
BinaryNodeType newTaggedTemplate(Node tag, Node args) {
|
||||||
|
|
|
||||||
|
|
@ -9448,13 +9448,10 @@ Parser<ParseHandler>::memberExpr(YieldHandling yieldHandling, TripledotHandling
|
||||||
if (!args)
|
if (!args)
|
||||||
return null();
|
return null();
|
||||||
|
|
||||||
nextMember = handler.newSuperCall(lhs, args);
|
nextMember = handler.newSuperCall(lhs, args, isSpread);
|
||||||
if (!nextMember)
|
if (!nextMember)
|
||||||
return null();
|
return null();
|
||||||
|
|
||||||
if (isSpread)
|
|
||||||
handler.setOp(nextMember, JSOP_SPREADSUPERCALL);
|
|
||||||
|
|
||||||
NameNodeType thisName = newThisName();
|
NameNodeType thisName = newThisName();
|
||||||
if (!thisName)
|
if (!thisName)
|
||||||
return null();
|
return null();
|
||||||
|
|
|
||||||
|
|
@ -307,7 +307,7 @@ FOR_EACH_PARSENODE_SUBCLASS(DECLARE_AS)
|
||||||
BinaryNodeType newCall(Node callee, Node args) { return NodeFunctionCall; }
|
BinaryNodeType newCall(Node callee, Node args) { return NodeFunctionCall; }
|
||||||
BinaryNodeType newOptionalCall(Node callee, Node args) { return NodeOptionalFunctionCall; }
|
BinaryNodeType newOptionalCall(Node callee, Node args) { return NodeOptionalFunctionCall; }
|
||||||
ListNodeType newArguments(const TokenPos& pos) { return NodeGeneric; }
|
ListNodeType newArguments(const TokenPos& pos) { return NodeGeneric; }
|
||||||
BinaryNodeType newSuperCall(Node callee, Node args) { return NodeGeneric; }
|
BinaryNodeType newSuperCall(Node callee, Node args, bool isSpread) { return NodeGeneric; }
|
||||||
BinaryNodeType newTaggedTemplate(Node callee, Node args) { return NodeGeneric; }
|
BinaryNodeType newTaggedTemplate(Node callee, Node args) { return NodeGeneric; }
|
||||||
Node newGenExp(Node callee, Node args) { return NodeGeneric; }
|
Node newGenExp(Node callee, Node args) { return NodeGeneric; }
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue