'use strict';

var isObject = require('is-plain-object');
var forIn = require('for-own');

module.exports = function deepMixin(o, objects) {
  if (!o || !objects) { return o || {}; }

  var len = arguments.length - 1;

  function copy(value, key) {
    var obj = this[key];
    if (isObject(value) && isObject(obj)) {
      deepMixin(obj, value);
    } else {
      this[key] = value;
    }
  }

  for (var i = 0; i < len; i++) {
    var obj = arguments[i + 1];

    if (isObject(obj)) {
      forIn(obj, copy, o);
    }
  }
  return o;
};

@@ -58,17 +58,18 @@
 %0Avar for
-I
+Ow
 n = requ
@@ -146,22 +146,56 @@
 f (!
-o %7C%7C !
+isObject(o)) return %7B%7D;%0A  if (!isObject(
 objects)
  %7B r
@@ -190,18 +190,17 @@
 objects)
- %7B
+)
  return 
@@ -204,17 +204,9 @@
 rn o
- %7C%7C %7B%7D; %7D
+;
 %0A%0A  
@@ -236,16 +236,146 @@
 gth - 1;
+%0A  for (var i = 0; i %3C len; i++) %7B%0A    var obj = arguments%5Bi + 1%5D;%0A%0A    if (isObject(obj)) %7B%0A      forOwn(obj, copy, o);%0A    %7D%0A  %7D
 %0A%0A  func
@@ -547,138 +547,8 @@
 %0A  %7D
-%0A%0A  for (var i = 0; i %3C len; i++) %7B%0A    var obj = arguments%5Bi + 1%5D;%0A%0A    if (isObject(obj)) %7B%0A      forIn(obj, copy, o);%0A    %7D%0A  %7D
 %0A  r

clean up, fix var name