-#ifdef __APPLE__
- JSValueRef exception(NULL);
- JSObjectRef array(JSObjectMakeArray(context, argc, args, &exception));
- CYThrow(context, exception);
-#else
- JSValueRef value(CYCallAsFunction(context, Array_, NULL, argc, args));
- JSObjectRef array(CYCastJSObject(context, value));
-#endif
+
+ JSObjectRef array;
+ if ($JSObjectMakeArray != NULL) {
+ JSValueRef exception(NULL);
+ array = (*$JSObjectMakeArray)(context, argc, args, &exception);
+ CYThrow(context, exception);
+ } else {
+ JSValueRef value(CYCallAsFunction(context, Array_, NULL, argc, args));
+ array = CYCastJSObject(context, value);
+ }
+