/* automatically generated by JSCoverage - do not edit */
if (typeof _$jscoverage === 'undefined') _$jscoverage = {};
if (! _$jscoverage['base/object.js']) {
  _$jscoverage['base/object.js'] = [];
  _$jscoverage['base/object.js'][1] = 0;
  _$jscoverage['base/object.js'][3] = 0;
  _$jscoverage['base/object.js'][4] = 0;
  _$jscoverage['base/object.js'][5] = 0;
  _$jscoverage['base/object.js'][6] = 0;
  _$jscoverage['base/object.js'][7] = 0;
  _$jscoverage['base/object.js'][8] = 0;
  _$jscoverage['base/object.js'][11] = 0;
  _$jscoverage['base/object.js'][37] = 0;
  _$jscoverage['base/object.js'][38] = 0;
  _$jscoverage['base/object.js'][39] = 0;
  _$jscoverage['base/object.js'][41] = 0;
  _$jscoverage['base/object.js'][42] = 0;
  _$jscoverage['base/object.js'][44] = 0;
  _$jscoverage['base/object.js'][78] = 0;
  _$jscoverage['base/object.js'][79] = 0;
  _$jscoverage['base/object.js'][80] = 0;
  _$jscoverage['base/object.js'][90] = 0;
  _$jscoverage['base/object.js'][91] = 0;
  _$jscoverage['base/object.js'][92] = 0;
  _$jscoverage['base/object.js'][114] = 0;
  _$jscoverage['base/object.js'][115] = 0;
  _$jscoverage['base/object.js'][116] = 0;
  _$jscoverage['base/object.js'][129] = 0;
  _$jscoverage['base/object.js'][130] = 0;
  _$jscoverage['base/object.js'][131] = 0;
  _$jscoverage['base/object.js'][132] = 0;
  _$jscoverage['base/object.js'][133] = 0;
  _$jscoverage['base/object.js'][137] = 0;
}
_$jscoverage['base/object.js'][1]++;
var comb = exports;
_$jscoverage['base/object.js'][3]++;
var merge = (function (target, source) {
  _$jscoverage['base/object.js'][4]++;
  var name, s;
  _$jscoverage['base/object.js'][5]++;
  for (name in source) {
    _$jscoverage['base/object.js'][6]++;
    s = source[name];
    _$jscoverage['base/object.js'][7]++;
    if (! (name in target) || (target[name] !== s)) {
      _$jscoverage['base/object.js'][8]++;
      target[name] = s;
    }
}
  _$jscoverage['base/object.js'][11]++;
  return target;
});
_$jscoverage['base/object.js'][37]++;
comb.merge = (function (obj, props) {
  _$jscoverage['base/object.js'][38]++;
  if (! obj) {
    _$jscoverage['base/object.js'][39]++;
    obj = {};
  }
  _$jscoverage['base/object.js'][41]++;
  for (var i = 1, l = arguments.length; i < l; i++) {
    _$jscoverage['base/object.js'][42]++;
    merge(obj, arguments[i]);
}
  _$jscoverage['base/object.js'][44]++;
  return obj;
});
_$jscoverage['base/object.js'][78]++;
comb.extend = (function (parent, extend) {
  _$jscoverage['base/object.js'][79]++;
  var proto = parent.prototype || parent;
  _$jscoverage['base/object.js'][80]++;
  return exports.merge(proto, extend);
});
_$jscoverage['base/object.js'][90]++;
comb.isObject = (function (obj) {
  _$jscoverage['base/object.js'][91]++;
  var undef;
  _$jscoverage['base/object.js'][92]++;
  return obj != null && obj != undef && typeof obj == "object";
});
_$jscoverage['base/object.js'][114]++;
comb.isHash = (function (obj) {
  _$jscoverage['base/object.js'][115]++;
  var ret = comb.isObject(obj);
  _$jscoverage['base/object.js'][116]++;
  return ret && obj.constructor === Object;
});
_$jscoverage['base/object.js'][129]++;
comb.isEmpty = (function (object) {
  _$jscoverage['base/object.js'][130]++;
  if (object) {
    _$jscoverage['base/object.js'][131]++;
    for (var i in object) {
      _$jscoverage['base/object.js'][132]++;
      if (object.hasOwnProperty(i)) {
        _$jscoverage['base/object.js'][133]++;
        return false;
      }
}
  }
  _$jscoverage['base/object.js'][137]++;
  return true;
});
_$jscoverage['base/object.js'].source = ["var comb = exports;","","var merge = function(target, source) {","    var name, s;","    for (name in source) {","        s = source[name];","        if (!(name in target) || (target[name] !== s)) {","            target[name] = s;","        }","    }","    return target;","};","","/**"," * Merges objects together"," * NOTE: this function takes a variable number of objects to merge"," *"," * @example"," *"," * var myObj = {};"," * comb.merge(myObj, {test : true});"," *"," * myObj.test =&gt; true"," *"," * comb.merge(myObj, {test : false}, {test2 : false}, {test3 : \"hello\", test4 : \"world\"});"," * myObj.test =&gt; false"," * myObj.test2 =&gt; false"," * myObj.test3 =&gt; \"hello\""," * myObj.test4 =&gt; \"world\""," *"," *"," * @param {Object} obj the object to merge into"," * @param {Obejct} props variable number of objects to merge into the obj"," *"," * @returns {Object} the merged object"," */","comb.merge = function(obj, props) {","    if (!obj) {","        obj = {};","    }","    for (var i = 1, l = arguments.length; i &lt; l; i++) {","        merge(obj, arguments[i]);","    }","    return obj; // Object","};","","/**"," * Extends the prototype of an object if it exists otherwise it extends the object."," *"," * @example"," *"," *  var MyObj = function(){};"," *  MyObj.prototype.test = true;"," *  comb.extend(MyObj, {test2 : false, test3 : \"hello\", test4 : \"world\"});"," *"," *  var myObj = new MyObj();"," *"," *  myObj.test =&gt; true"," *  myObj.test2 =&gt; false"," *  myObj.test3 =&gt; \"hello\""," *  myObj.test4 =&gt; \"world\""," *"," *  var myObj2 = {};"," *  myObj2.test = true;"," *  comb.extend(myObj2, {test2 : false, test3 : \"hello\", test4 : \"world\"});"," *"," *  myObj2.test =&gt; true"," *  myObj2.test2 =&gt; false"," *  myObj2.test3 =&gt; \"hello\""," *  myObj2.test4 =&gt; \"world\""," *"," *"," * @param {Object} parent the parent object to extend"," * @param {Object} extend the extension object to mixin to the parent"," *"," * @returns {Object} returns the extended object"," */","comb.extend = function(parent, extend){","    var proto = parent.prototype || parent;","    return exports.merge(proto, extend);","};","","/**"," * Determines if obj is an object"," *"," * @param {Anything} obj the thing to test if it is an object"," *"," * @returns {Boolean} true if it is an object false otherwise"," */","comb.isObject = function(obj) {","    var undef;","    return obj != null &amp;&amp; obj != undef &amp;&amp; typeof obj == \"object\";","};","","/**"," * Determins if an object is just a hash and not a qualified Object such as number"," * "," * @example"," *    comb.isHash({}) =&gt; true"," *    comb.isHash({1 : 2, a : \"b\"}) =&gt; true"," *    comb.isHash(new Date()) =&gt; false"," *    comb.isHash(new String()) =&gt; false"," *    comb.isHash(new Number()) =&gt; false"," *    comb.isHash(new Boolean()) =&gt; false"," *    comb.isHash() =&gt; false"," *    comb.isHash(\"\") =&gt; false"," *    comb.isHash(1) =&gt; false"," *    comb.isHash(false) =&gt; false"," *    comb.isHash(true) =&gt; false"," * @param {Anything} obj the thing to test if it is a hash"," *"," * @returns {Boolean} true if it is a hash false otherwise"," */","comb.isHash = function(obj){","    var ret = comb.isObject(obj);","    return ret &amp;&amp; obj.constructor === Object;","}","","/**"," * Determines if an object is empty"," *"," * @example"," *"," * comb.isEmpty({}) =&gt; true"," * comg.isEmpty({a : 1}) =&gt; false"," *"," * @param object the object to test"," */","comb.isEmpty = function(object) {","    if (object) {","        for (var i in object) {","            if (object.hasOwnProperty(i)) {","                return false;","            }","        }","    }","    return true;","}"];
