Version 1
[yaffs-website] / node_modules / phridge / lib / serializeFn.js
1 "use strict";\r
2 \r
3 /**\r
4  * Serializes the function and its arguments to send it to stdin.\r
5  *\r
6  * @param {Function} fn\r
7  * @param {Array} args\r
8  * @returns {string}\r
9  */\r
10 function serializeFn(fn, args) {\r
11     var fnIsSync = args.length === fn.length;\r
12     var src;\r
13 \r
14     args = args.map(JSON.stringify);\r
15     args.unshift("context");\r
16 \r
17     if (fnIsSync) {\r
18         src = "resolve((" + fn.toString() + ").call(" + args.join() + "));";\r
19     } else {\r
20         args.push("resolve", "reject");\r
21         src = "(" + fn.toString() + ").call(" + args.join() + ");";\r
22     }\r
23 \r
24     // Currently sourceURLs aren't supported by PhantomJS but maybe in the future\r
25     return src + "//# sourceURL=phridge.js";\r
26 }\r
27 \r
28 module.exports = serializeFn;