diff options
Diffstat (limited to 'src/utility.js')
-rw-r--r-- | src/utility.js | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/utility.js b/src/utility.js index 63582ae8..b67e6c21 100644 --- a/src/utility.js +++ b/src/utility.js @@ -10,6 +10,10 @@ function safeQuote(x) { function dump(item) { try { + if (typeof item == 'object' && item !== null && item.funcData) { + var funcData = item.funcData; + item.funcData = null; + } return '// ' + JSON.stringify(item, null, ' ').replace(/\n/g, '\n// '); } catch(e) { var ret = []; @@ -22,6 +26,8 @@ function dump(item) { } } return ret.join(',\n'); + } finally { + if (funcData) item.funcData = funcData; } } @@ -79,6 +85,13 @@ function warnOnce(a, msg) { } } +var abortExecution = false; + +function error(msg) { + abortExecution = true; + printErr('Error: ' + msg); +} + function dedup(items, ident) { var seen = {}; if (ident) { @@ -261,6 +274,15 @@ function set() { } var unset = keys; +function numberedSet() { + var args = typeof arguments[0] === 'object' ? arguments[0] : arguments; + var ret = {}; + for (var i = 0; i < args.length; i++) { + ret[args[i]] = i; + } + return ret; +} + function setSub(x, y) { var ret = set(keys(x)); for (yy in y) { |