diff options
Diffstat (limited to 'scripts/util.js')
| -rw-r--r-- | scripts/util.js | 45 |
1 files changed, 34 insertions, 11 deletions
diff --git a/scripts/util.js b/scripts/util.js index 4eb94266..4af7a7cf 100644 --- a/scripts/util.js +++ b/scripts/util.js @@ -1,12 +1,39 @@ -function set_from_array(a) { +/* + Craziness to deal with the bolted on module systems that we use: + In browser: require.js, it uses a global function named 'define' + On server for tests: Node, it provides a module definition time object named 'exports' +*/ +(function(factory) { + if (typeof define != 'undefined') { + define('util', factory); + } else { + if (typeof exports == 'object') { + var obj = factory(); + for (var i in obj) { + exports[i] = obj[i]; + } + } + } +})(function() { +return { + +set_from_array: function (a) { var ret = {}; for (var k = 0 ; k < a.length ; ++k) { ret[a[k]] = 1; } return ret; -} +}, + +set_from_object: function(o) { + var ret = {} + for (var k in o) { + ret[k] = 1; + } + return ret; +}, -function set_diff(sa, sb) { +set_diff: function(sa, sb) { var ret = {a_b:[], b_a:[]}; var i; for (i in sa) { @@ -20,16 +47,12 @@ function set_diff(sa, sb) { } } return ret; -} +}, -function array_diff(aa, ab) { +array_diff: function(aa, ab) { var sa = set_from_array(aa); var sb = set_from_array(ab); return set_diff(sa, sb); -} +}, -if (typeof(exports) != 'undefined') { - exports.set_diff = set_diff; - exports.array_diff = array_diff; - exports.set_from_array = set_from_array; -} +}}); |
