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

Function fxFieldNodeCode

xs/sources/xsCode.c:3108–3139  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3106 }
3107
3108void fxFieldNodeCode(void* it, void* param)
3109{
3110 txFieldNode* self = it;
3111 txNode* item = self->item;
3112 fxCoderAddByte(param, 1, XS_CODE_THIS);
3113 if (item->description->token == XS_TOKEN_PROPERTY) {
3114 fxNodeDispatchCode(self->value, param);
3115 fxCoderAddSymbol(param, -2, XS_CODE_NEW_PROPERTY, ((txPropertyNode*)item)->symbol);
3116 fxCoderAddInteger(param, 0, XS_CODE_INTEGER_1, fxNodeCodeName(self->value) ? XS_NAME_FLAG : 0);
3117 }
3118 else if (item->description->token == XS_TOKEN_PROPERTY_AT) {
3119 fxCoderAddIndex(param, 1, XS_CODE_GET_CLOSURE_1, ((txPropertyAtNode*)item)->atAccess->declaration->index);
3120 fxNodeDispatchCode(self->value, param);
3121 fxCoderAddByte(param, -3, XS_CODE_NEW_PROPERTY_AT);
3122 fxCoderAddInteger(param, 0, XS_CODE_INTEGER_1, fxNodeCodeName(self->value) ? XS_NAME_FLAG : 0);
3123 }
3124 else {
3125 if (item->flags & (mxMethodFlag | mxGetterFlag | mxSetterFlag))
3126 fxCoderAddIndex(param, 1, XS_CODE_GET_CLOSURE_1, ((txPrivatePropertyNode*)item)->valueAccess->declaration->index);
3127 else
3128 fxNodeDispatchCode(self->value, param);
3129 fxCoderAddIndex(param, -2, XS_CODE_NEW_PRIVATE_1, ((txPrivatePropertyNode*)item)->symbolAccess->declaration->index);
3130 if (item->flags & mxMethodFlag)
3131 fxCoderAddInteger(param, 0, XS_CODE_INTEGER_1, XS_NAME_FLAG | XS_METHOD_FLAG);
3132 else if (item->flags & mxGetterFlag)
3133 fxCoderAddInteger(param, 0, XS_CODE_INTEGER_1, XS_NAME_FLAG | XS_METHOD_FLAG | XS_GETTER_FLAG);
3134 else if (item->flags & mxSetterFlag)
3135 fxCoderAddInteger(param, 0, XS_CODE_INTEGER_1, XS_NAME_FLAG | XS_METHOD_FLAG | XS_SETTER_FLAG);
3136 else
3137 fxCoderAddInteger(param, 0, XS_CODE_INTEGER_1, fxNodeCodeName(self->value) ? XS_NAME_FLAG : 0);
3138 }
3139}
3140
3141void fxForNodeCode(void* it, void* param)
3142{

Callers

nothing calls this directly

Calls 6

fxCoderAddByteFunction · 0.85
fxNodeDispatchCodeFunction · 0.85
fxCoderAddSymbolFunction · 0.85
fxCoderAddIntegerFunction · 0.85
fxNodeCodeNameFunction · 0.85
fxCoderAddIndexFunction · 0.85

Tested by

no test coverage detected