diff --git a/Source/Ejecta/EJUtils/EJBindingGameCenter.m b/Source/Ejecta/EJUtils/EJBindingGameCenter.m index 8c862096..6d2be280 100644 --- a/Source/Ejecta/EJUtils/EJBindingGameCenter.m +++ b/Source/Ejecta/EJUtils/EJBindingGameCenter.m @@ -232,13 +232,14 @@ - (void)reportAchievementWithIdentifier:(NSString *)identifier #define InvokeAndUnprotectCallback(callback, error, object) \ + JSContextRef _gctx = scriptView.jsGlobalContext; \ [scriptView invokeCallback:callback thisObject:NULL argc:2 argv: \ (JSValueRef[]){ \ - JSValueMakeBoolean(scriptView.jsGlobalContext, error), \ - (object ? NSObjectToJSValue(scriptView.jsGlobalContext, object) : scriptView->jsUndefined) \ + error ? NSStringToJSValue(_gctx, error.localizedDescription) : JSValueMakeNull(_gctx), \ + (object ? NSObjectToJSValue(_gctx, object) : scriptView->jsUndefined) \ } \ ]; \ - JSValueUnprotect(scriptView.jsGlobalContext, callback); + JSValueUnprotect(_gctx, callback); #define ExitWithCallbackOnError(callback, error) \ if( error ) { \