Issue #1894 - Part 5: Implement bytecode for nullish coalescing

Based on https://bugzilla.mozilla.org/show_bug.cgi?id=1566141
This commit is contained in:
FranklinDM 2022-05-20 16:00:42 +08:00 • committed by roytam1
commit 707867d165

View file

@ -3334,6 +3334,7 @@ BytecodeEmitter::checkSideEffects(ParseNode* pn, bool* answer)
case PNK_CATCHLIST: case PNK_CATCHLIST:
// Strict equality operations and logical operators are well-behaved and // Strict equality operations and logical operators are well-behaved and
// perform no conversions. // perform no conversions.
case PNK_COALESCE:
case PNK_OR: case PNK_OR:
case PNK_AND: case PNK_AND:
case PNK_STRICTEQ: case PNK_STRICTEQ:
@ -11355,6 +11356,7 @@ BytecodeEmitter::emitTree(ParseNode* pn, ValueUsage valueUsage /* = ValueUsage::
return false; return false;
break; break;
case PNK_COALESCE:
case PNK_OR: case PNK_OR:
case PNK_AND: case PNK_AND:
if (!emitLogical(pn)) if (!emitLogical(pn))