| 3112 | return this; |
| 3113 | } |
| 3114 | hx::Object *runObject(CppiaCtx *ctx) HXCPP_OVERRIDE |
| 3115 | { |
| 3116 | hx::Object *funcVal = func->runObject(ctx); |
| 3117 | BCR_CHECK; |
| 3118 | |
| 3119 | CPPIA_CHECK_FUNC(funcVal); |
| 3120 | |
| 3121 | int size = args.size(); |
| 3122 | #if (HXCPP_API_LEVEL>=500) |
| 3123 | Array<Dynamic> argArray = Array_obj<Dynamic>::__new(size, size); |
| 3124 | for (int s = 0; s < size; s++) |
| 3125 | { |
| 3126 | argArray[s] = args[s]->runObject(ctx); |
| 3127 | BCR_CHECK; |
| 3128 | } |
| 3129 | |
| 3130 | return funcVal->__Run(argArray).mPtr; |
| 3131 | #else |
| 3132 | switch(size) |
| 3133 | { |
| 3134 | case 0: |
| 3135 | return funcVal->__run().mPtr; |
| 3136 | |
| 3137 | case 1: |
| 3138 | { |
| 3139 | Dynamic a0 = args[0]->runObject(ctx); |
| 3140 | BCR_CHECK; |
| 3141 | return funcVal->__run(a0).mPtr; |
| 3142 | } |
| 3143 | |
| 3144 | case 2: |
| 3145 | { |
| 3146 | Dynamic a0 = args[0]->runObject(ctx); |
| 3147 | BCR_CHECK; |
| 3148 | Dynamic a1 = args[1]->runObject(ctx); |
| 3149 | BCR_CHECK; |
| 3150 | return funcVal->__run(a0,a1).mPtr; |
| 3151 | } |
| 3152 | case 3: |
| 3153 | { |
| 3154 | Dynamic a0 = args[0]->runObject(ctx); |
| 3155 | BCR_CHECK; |
| 3156 | Dynamic a1 = args[1]->runObject(ctx); |
| 3157 | BCR_CHECK; |
| 3158 | Dynamic a2 = args[2]->runObject(ctx); |
| 3159 | BCR_CHECK; |
| 3160 | return funcVal->__run(a0,a1,a2).mPtr; |
| 3161 | } |
| 3162 | case 4: |
| 3163 | { |
| 3164 | Dynamic a0 = args[0]->runObject(ctx); |
| 3165 | BCR_CHECK; |
| 3166 | Dynamic a1 = args[1]->runObject(ctx); |
| 3167 | BCR_CHECK; |
| 3168 | Dynamic a2 = args[2]->runObject(ctx); |
| 3169 | BCR_CHECK; |
| 3170 | Dynamic a3 = args[3]->runObject(ctx); |
| 3171 | BCR_CHECK; |