  /**
   * extend function
   * extend an object by any number of objects
   * @param  {object} base  - object to be extended or to extend u.js namespace
   * @return {object}         extended object
   */
  u.extend = function(base){
    var args = arguments,
        i,
        prop;

    args[1] || (args[1] = base, base = u);

    for (i in args) {
      if (i > 0) {
        for(prop in args[i]) {
          if (args[i].hasOwnProperty(prop)) {
            base[prop] = args[i][prop];
          }
        }
      }
    }
    return base;
  };

@@ -324,16 +324,119 @@
  = u);%0A%0A
+    if (/%5Ef/.test(typeof Object.assign)) %7B%0A      Object.assign.apply(Object, args);%0A    %7D%0A    else %7B%0A  
     for 
@@ -451,24 +451,26 @@
 gs) %7B%0A      
+  
 if (i %3E 0) %7B
@@ -466,24 +466,26 @@
 f (i %3E 0) %7B%0A
+  
         for(
@@ -483,16 +483,17 @@
      for
+ 
 (prop in
@@ -500,24 +500,26 @@
  args%5Bi%5D) %7B%0A
+  
           if
@@ -564,16 +564,18 @@
         
+ 
+ 
 base%5Bpro
@@ -594,16 +594,30 @@
 %5Bprop%5D;%0A
+            %7D%0A
         

use native object extension if available