I know that you've accepted the answer that support for this was removed (and that this is an old question), but you can pass a JS function as a block to Objective-C in the JavaScriptCore framework introduced with iOS7/Mavericks - your code just needs to change slightly how you declare and invoke the block:
JSContext *context = [[JSContext alloc] init];
context[@"Log"] = ^(NSString *message){NSLog(@"%@", message);};
context[@"BlockTest"] = ^(JSValue *blockTest){
NSLog(@"Calling Block Test");
[blockTest callWithArguments:@[@"STRINGGGGG"]];
};
[context evaluateScript:@"BlockTest( function(dataString){Log('JS '+dataString);} )"];