Two components: (1) js code to serialize ArrayBuffer into some form, and (2) ios code to deserialize into NSData
The reverse of this work will come later to send binary data back down the bridge
js: as of https://git-wip-us.apache.org/repos/asf?p=cordova-js.git;a=commit;h=50bf9441d29144693d710ecab272d9c1db4c01d2, but actual work was in https://git-wip-us.apache.org/repos/asf?p=cordova-js.git;a=commit;h=334b19779c48c9dd79137bf04821fb86ae7efc47
Any ArrayBuffer object in the arguments array of the exec call will be serialized and deserialized into a NSData on the other side.
Notes: this ONLY supports ArrayBuffers and ONLY at the "top level" of the arguments array (we don't iterate any of your objects etc).