| 827 | return 0; |
| 828 | } |
| 829 | void runVoid(CppiaCtx *ctx) HXCPP_OVERRIDE |
| 830 | { |
| 831 | if (FUNC==afPop) |
| 832 | { |
| 833 | Array_obj<ELEM> *thisVal = (Array_obj<ELEM>*)thisExpr->runObject(ctx); |
| 834 | BCR_VCHECK; |
| 835 | thisVal->pop(); |
| 836 | } |
| 837 | if (FUNC==afShift) |
| 838 | { |
| 839 | Array_obj<ELEM> *thisVal = (Array_obj<ELEM>*)thisExpr->runObject(ctx); |
| 840 | BCR_VCHECK; |
| 841 | thisVal->shift(); |
| 842 | } |
| 843 | if (FUNC==af__set) |
| 844 | { |
| 845 | Array_obj<ELEM> *thisVal = (Array_obj<ELEM>*)thisExpr->runObject(ctx); |
| 846 | BCR_VCHECK; |
| 847 | int i = args[0]->runInt(ctx); |
| 848 | BCR_VCHECK; |
| 849 | ELEM elem; |
| 850 | thisVal->Item(i) = runValue(elem,ctx,args[1]); |
| 851 | #ifdef HXCPP_GC_GENERATIONAL |
| 852 | if (hx::ContainsPointers<ELEM>()) |
| 853 | HX_OBJ_WB_CTX(thisVal, hx::PointerOf(elem), ctx); |
| 854 | #endif |
| 855 | |
| 856 | } |
| 857 | if (FUNC==af__crement) |
| 858 | { |
| 859 | Array_obj<ELEM> *thisVal = (Array_obj<ELEM>*)thisExpr->runObject(ctx); |
| 860 | BCR_VCHECK; |
| 861 | int idx = args[0]->runInt(ctx); |
| 862 | BCR_VCHECK; |
| 863 | ELEM &elem = thisVal->Item(idx); |
| 864 | CREMENT::run(elem); |
| 865 | #ifdef HXCPP_GC_GENERATIONAL |
| 866 | if (hx::ContainsPointers<ELEM>()) |
| 867 | HX_OBJ_WB_CTX(thisVal,hx::PointerOf(elem),ctx); |
| 868 | #endif |
| 869 | } |
| 870 | |
| 871 | if (FUNC==afPush || FUNC==afContains || FUNC==afRemove || FUNC==afIndexOf || FUNC==afLastIndexOf) |
| 872 | runInt(ctx); |
| 873 | |
| 874 | if (FUNC==afConcat || FUNC==afCopy || FUNC==afReverse || FUNC==afSplice || FUNC==afSlice || |
| 875 | FUNC==afMap || FUNC==afFilter) |
| 876 | runObject(ctx); |
| 877 | |
| 878 | if (FUNC==afReverse) |
| 879 | { |
| 880 | Array_obj<ELEM> *thisVal = (Array_obj<ELEM>*)thisExpr->runObject(ctx); |
| 881 | BCR_VCHECK; |
| 882 | thisVal->reverse(); |
| 883 | } |
| 884 | if (FUNC==afSort) |
| 885 | { |
| 886 | Array_obj<ELEM> *thisVal = (Array_obj<ELEM>*)thisExpr->runObject(ctx); |