| 3106 | } |
| 3107 | |
| 3108 | void 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 | |
| 3141 | void fxForNodeCode(void* it, void* param) |
| 3142 | { |
nothing calls this directly
no test coverage detected