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

Function fxProgramNodeCode

xs/sources/xsCode.c:4215–4244  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4213}
4214
4215void fxProgramNodeCode(void* it, void* param)
4216{
4217 txProgramNode* self = it;
4218 txCoder* coder = param;
4219
4220 coder->line = -1;
4221 coder->programFlag = 1;
4222 coder->scopeLevel = 0;
4223 coder->firstBreakTarget = NULL;
4224 coder->firstContinueTarget = NULL;
4225
4226 if (self->flags & mxStrictFlag)
4227 fxCoderAddIndex(param, 0, XS_CODE_BEGIN_STRICT, 0);
4228 else
4229 fxCoderAddIndex(param, 0, XS_CODE_BEGIN_SLOPPY, 0);
4230 coder->path = C_NULL;
4231 if (self->line >= 0)
4232 fxCoderAddLine(coder, 0, XS_CODE_LINE, it);
4233 if (coder->parser->flags & mxEvalFlag) {
4234 coder->evalFlag = 1;
4235 fxScopeCodingEval(self->scope, param);
4236 }
4237 else
4238 fxScopeCodingProgram(self->scope, param);
4239 coder->returnTarget = fxCoderCreateTarget(param);
4240 fxScopeCodeDefineNodes(self->scope, param);
4241 fxNodeDispatchCode(self->body, param);
4242 fxCoderAdd(param, 0, coder->returnTarget);
4243 fxCoderAddByte(param, 0, XS_CODE_RETURN);
4244}
4245
4246void fxQuestionMarkNodeCode(void* it, void* param)
4247{

Callers

nothing calls this directly

Calls 9

fxCoderAddIndexFunction · 0.85
fxCoderAddLineFunction · 0.85
fxScopeCodingEvalFunction · 0.85
fxScopeCodingProgramFunction · 0.85
fxCoderCreateTargetFunction · 0.85
fxScopeCodeDefineNodesFunction · 0.85
fxNodeDispatchCodeFunction · 0.85
fxCoderAddFunction · 0.85
fxCoderAddByteFunction · 0.85

Tested by

no test coverage detected