| 954 | ExprType getType() HXCPP_OVERRIDE { return etObject; } |
| 955 | |
| 956 | hx::Object *runObject(CppiaCtx *ctx) HXCPP_OVERRIDE |
| 957 | { |
| 958 | int n = args.size(); |
| 959 | #if (HXCPP_API_LEVEL>=500) |
| 960 | Array<Dynamic> argVals = Array_obj<Dynamic>::__new(n, n); |
| 961 | for (int a = 0; a < n; a++) |
| 962 | { |
| 963 | argVals[a] = Dynamic(args[a]->runObject(ctx)); |
| 964 | BCR_CHECK; |
| 965 | } |
| 966 | return value->__Run(argVals).mPtr; |
| 967 | #else |
| 968 | switch(n) |
| 969 | { |
| 970 | case 0: |
| 971 | return value->__run().mPtr; |
| 972 | case 1: |
| 973 | { |
| 974 | Dynamic arg0( args[0]->runObject(ctx) ); |
| 975 | BCR_CHECK; |
| 976 | return value->__run(arg0).mPtr; |
| 977 | } |
| 978 | case 2: |
| 979 | { |
| 980 | Dynamic arg0( args[0]->runObject(ctx) ); |
| 981 | BCR_CHECK; |
| 982 | Dynamic arg1( args[1]->runObject(ctx) ); |
| 983 | BCR_CHECK; |
| 984 | return value->__run(arg0,arg1).mPtr; |
| 985 | } |
| 986 | case 3: |
| 987 | { |
| 988 | Dynamic arg0( args[0]->runObject(ctx) ); |
| 989 | BCR_CHECK; |
| 990 | Dynamic arg1( args[1]->runObject(ctx) ); |
| 991 | BCR_CHECK; |
| 992 | Dynamic arg2( args[2]->runObject(ctx) ); |
| 993 | BCR_CHECK; |
| 994 | return value->__run(arg0,arg1,arg2).mPtr; |
| 995 | } |
| 996 | case 4: |
| 997 | { |
| 998 | Dynamic arg0( args[0]->runObject(ctx) ); |
| 999 | BCR_CHECK; |
| 1000 | Dynamic arg1( args[1]->runObject(ctx) ); |
| 1001 | BCR_CHECK; |
| 1002 | Dynamic arg2( args[2]->runObject(ctx) ); |
| 1003 | BCR_CHECK; |
| 1004 | Dynamic arg3( args[3]->runObject(ctx) ); |
| 1005 | BCR_CHECK; |
| 1006 | return value->__run(arg0,arg1,arg2,arg3).mPtr; |
| 1007 | } |
| 1008 | case 5: |
| 1009 | { |
| 1010 | Dynamic arg0( args[0]->runObject(ctx) ); |
| 1011 | BCR_CHECK; |
| 1012 | Dynamic arg1( args[1]->runObject(ctx) ); |
| 1013 | BCR_CHECK; |