4 * Serializes the function and its arguments to send it to stdin.
\r
6 * @param {Function} fn
\r
7 * @param {Array} args
\r
10 function serializeFn(fn, args) {
\r
11 var fnIsSync = args.length === fn.length;
\r
14 args = args.map(JSON.stringify);
\r
15 args.unshift("context");
\r
18 src = "resolve((" + fn.toString() + ").call(" + args.join() + "));";
\r
20 args.push("resolve", "reject");
\r
21 src = "(" + fn.toString() + ").call(" + args.join() + ");";
\r
24 // Currently sourceURLs aren't supported by PhantomJS but maybe in the future
\r
25 return src + "//# sourceURL=phridge.js";
\r
28 module.exports = serializeFn;