MCPcopy Create free account
hub / github.com/Moddable-OpenSource/moddable / fxOptionNodeCodeThis

Function fxOptionNodeCodeThis

xs/sources/xsCode.c:4037–4053  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4035}
4036
4037txFlag fxOptionNodeCodeThis(void* it, void* param, txFlag flag)
4038{
4039 txUnaryExpressionNode* self = it;
4040 txCoder* coder = param;
4041 txTargetCode* swapTarget = fxCoderCreateTarget(param);
4042 txTargetCode* skipTarget = fxCoderCreateTarget(param);
4043 self->right->flags |= (self->flags & mxTailRecursionFlag);
4044 flag = fxNodeDispatchCodeThis(self->right, param, flag);
4045 fxCoderAddBranch(param, 0, XS_CODE_BRANCH_CHAIN_1, swapTarget);
4046 fxCoderAddBranch(param, 1, XS_CODE_BRANCH_1, skipTarget);
4047 fxCoderAdd(param, 0, swapTarget);
4048 fxCoderAddByte(param, 0, XS_CODE_SWAP);
4049 fxCoderAddByte(param, -1, XS_CODE_POP);
4050 fxCoderAddBranch(param, 0, XS_CODE_BRANCH_1, coder->chainTarget);
4051 fxCoderAdd(param, 0, skipTarget);
4052 return flag;
4053}
4054
4055void fxOrExpressionNodeCode(void* it, void* param)
4056{

Callers

nothing calls this directly

Calls 5

fxCoderCreateTargetFunction · 0.85
fxNodeDispatchCodeThisFunction · 0.85
fxCoderAddBranchFunction · 0.85
fxCoderAddFunction · 0.85
fxCoderAddByteFunction · 0.85

Tested by

no test coverage detected