| 1769 | } |
| 1770 | |
| 1771 | void fxScopeCodeRetrieve(txScope* self, txCoder* coder) |
| 1772 | { |
| 1773 | txDeclareNode* node; |
| 1774 | txInteger count = 0; |
| 1775 | node = self->firstDeclareNode; |
| 1776 | while (node) { |
| 1777 | if ((node->flags & mxDeclareNodeUseClosureFlag) && node->symbol) { |
| 1778 | node->index = coder->scopeLevel++; |
| 1779 | count++; |
| 1780 | } |
| 1781 | node = node->nextDeclareNode; |
| 1782 | } |
| 1783 | if ((self->node->flags & mxArrowFlag) && ((self->node->flags & mxDefaultFlag) || (self->flags & mxEvalFlag))) { |
| 1784 | fxCoderAddIndex(coder, 0, XS_CODE_RETRIEVE_1, count); |
| 1785 | fxCoderAddByte(coder, 0, XS_CODE_RETRIEVE_TARGET); |
| 1786 | fxCoderAddByte(coder, 0, XS_CODE_RETRIEVE_THIS); |
| 1787 | } |
| 1788 | else if (count) |
| 1789 | fxCoderAddIndex(coder, 0, XS_CODE_RETRIEVE_1, count); |
| 1790 | self->closureNodeCount = count; |
| 1791 | } |
| 1792 | |
| 1793 | void fxScopeCodeStore(txScope* self, txCoder* coder) |
| 1794 | { |
no test coverage detected