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

Function fxSpreadNodeCode

xs/sources/xsCode.c:4297–4328  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4295}
4296
4297void fxSpreadNodeCode(void* it, void* param, txInteger counter)
4298{
4299 txSpreadNode* self = it;
4300 txCoder* coder = param;
4301 txTargetCode* nextTarget = fxCoderCreateTarget(param);
4302 txTargetCode* doneTarget = fxCoderCreateTarget(param);
4303 txInteger iterator;
4304 fxNodeDispatchCode(self->expression, param);
4305 fxCoderAddByte(param, 0, XS_CODE_FOR_OF);
4306 iterator = fxCoderUseTemporaryVariable(param);
4307 fxCoderAddIndex(param, 0, XS_CODE_SET_LOCAL_1, iterator);
4308 fxCoderAddByte(param, -1, XS_CODE_POP);
4309 fxCoderAdd(param, 0, nextTarget);
4310 fxCoderAddIndex(param, 1, XS_CODE_GET_LOCAL_1, iterator);
4311 fxCoderAddByte(param, 1, XS_CODE_DUB);
4312 fxCoderAddSymbol(param, 0, XS_CODE_GET_PROPERTY, coder->parser->nextSymbol);
4313 fxCoderAddByte(param, 1, XS_CODE_CALL);
4314 fxCoderAddInteger(param, -2, XS_CODE_RUN_1, 0);
4315 fxCoderAddByte(param, 1, XS_CODE_DUB);
4316 fxCoderAddSymbol(param, 0, XS_CODE_GET_PROPERTY, coder->parser->doneSymbol);
4317 fxCoderAddBranch(param, -1, XS_CODE_BRANCH_IF_1, doneTarget);
4318 fxCoderAddSymbol(param, 0, XS_CODE_GET_PROPERTY, coder->parser->valueSymbol);
4319 fxCoderAddIndex(param, 1, XS_CODE_GET_LOCAL_1, counter);
4320 fxCoderAddInteger(param, 1, XS_CODE_INTEGER_1, 1);
4321 fxCoderAddByte(param, -1, XS_CODE_ADD);
4322 fxCoderAddIndex(param, 0, XS_CODE_SET_LOCAL_1, counter);
4323 fxCoderAddByte(param, -1, XS_CODE_POP);
4324 fxCoderAddBranch(param, 0, XS_CODE_BRANCH_1, nextTarget);
4325 fxCoderAdd(param, 1, doneTarget);
4326 fxCoderAddByte(param, -1, XS_CODE_POP);
4327 fxCoderUnuseTemporaryVariables(param, 1);
4328}
4329
4330void fxStatementNodeCode(void* it, void* param)
4331{

Callers 1

fxParamsNodeCodeFunction · 0.85

Calls 10

fxCoderCreateTargetFunction · 0.85
fxNodeDispatchCodeFunction · 0.85
fxCoderAddByteFunction · 0.85
fxCoderAddIndexFunction · 0.85
fxCoderAddFunction · 0.85
fxCoderAddSymbolFunction · 0.85
fxCoderAddIntegerFunction · 0.85
fxCoderAddBranchFunction · 0.85

Tested by

no test coverage detected