Component.prototype.invokeWithCallback handles the correct signature

It now returns a promise.

It handles its arguments the same way invokeWithCallbacks does internally and passes them gracefully