|
|
@@ -421,7 +421,12 @@ inline gravity_value_t convert_value2string (gravity_vm *vm, gravity_value_t v)
|
|
|
}
|
|
|
|
|
|
// execute closure and return its value
|
|
|
- if (gravity_vm_runclosure(vm, closure, v, NULL, 0)) return gravity_vm_result(vm);
|
|
|
+ if (gravity_vm_runclosure(vm, closure, v, NULL, 0)) {
|
|
|
+ gravity_value_t result = gravity_vm_result(vm);
|
|
|
+ // sanity check closure return value because sometimes nil is returned by an objc instance (for example NSData String)
|
|
|
+ if (!VALUE_ISA_STRING(result)) return VALUE_FROM_CSTRING(vm, "null");
|
|
|
+ return result;
|
|
|
+ }
|
|
|
|
|
|
return VALUE_FROM_ERROR(NULL);
|
|
|
}
|