From f61fbc97b595a52ccd5bddec424d271fe4b8de83 Mon Sep 17 00:00:00 2001 From: Paul Joseph Davis Date: Sat, 12 Dec 2009 23:43:11 +0000 Subject: Create a new sandbox for each reset. git-svn-id: https://svn.apache.org/repos/asf/couchdb/trunk@890008 13f79535-47bb-0310-9956-ffa450edef68 --- share/server/loop.js | 31 ++++++++++++++++++------------- share/server/state.js | 1 + 2 files changed, 19 insertions(+), 13 deletions(-) (limited to 'share/server') diff --git a/share/server/loop.js b/share/server/loop.js index ff241eed..33e87c98 100644 --- a/share/server/loop.js +++ b/share/server/loop.js @@ -12,19 +12,24 @@ var sandbox = null; -try { - // if possible, use evalcx (not always available) - sandbox = evalcx(''); - sandbox.emit = emit; - sandbox.sum = sum; - sandbox.log = log; - sandbox.toJSON = toJSON; - sandbox.provides = provides; - sandbox.registerType = registerType; - sandbox.start = start; - sandbox.send = send; - sandbox.getRow = getRow; -} catch (e) {} +var init_sandbox = function() { + try { + // if possible, use evalcx (not always available) + sandbox = evalcx(''); + sandbox.emit = emit; + sandbox.sum = sum; + sandbox.log = log; + sandbox.toJSON = toJSON; + sandbox.provides = provides; + sandbox.registerType = registerType; + sandbox.start = start; + sandbox.send = send; + sandbox.getRow = getRow; + } catch (e) { + log(toJSON(e)); + } +}; +init_sandbox(); // Commands are in the form of json arrays: // ["commandname",..optional args...]\n diff --git a/share/server/state.js b/share/server/state.js index aacd8ab1..b9bd87aa 100644 --- a/share/server/state.js +++ b/share/server/state.js @@ -21,6 +21,7 @@ var State = (function() { funs = []; funsrc = []; query_config = config; + init_sandbox(); gc(); print("true"); // indicates success }, -- cgit v1.2.3