code: function(obj) {
        if(obj == null || typeof(obj) != 'object') {
          return obj;
        }
  
        var temp = new obj.constructor();
  
        for(var key in obj) {
          if (obj.hasOwnProperty(key)) {
            temp[key] = _.snapshot(obj[key]);
          }
        }
  
        return temp;
      }
docs: Snapshots an object deeply. Based on the version by [Keith Devens](http://keithdevens.com/weblog/archive/2007/Jun/07/javascript.clone) until we can find a more efficient and robust way to do it.