code: function mix(self, ref) {
  	if (ref === undefined) return self;
  	if ((typeof(ref) != 'object') || (typeof(self) != 'object') || isValueObject(self)) return ref;
  	Object.keys(ref).forEach(function(key) { self[key] = mix(self[key], ref[key]) });
  	return self;
  }
docs: the mix() for JSON object only