async call(fn, ...args) {
            let result = await this.sendMessage("call", {fn: serialize(fn), args: args.map(x => serialize(x))}, true);
            if (result.exceptionDetails) {
                throw deserialize(result.exceptionDetails.exception);
            }
            return deserialize(result.result);
        }
Run the function ``fn`` in the remote global, passing arguments
``args``, and return the result after awaiting any returned
promise.

@param {Function} fn - Function to run in the remote global.
@param {...Any} args  - Arguments to pass to the function
@returns {Promise} - Promise resolving to the return value
of the function.