code: function Object_assign(target               // @arg Object
                         /* sources ... */) { // @var_args Object - sources objects
                                              // @ret Object - return target
                                              // @desc mixin
      // http://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.assign
      // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign
  
      var args = arguments;
  
      for (var i = 1, iz = args.length; i < iz; ++i) {
          var source = args[i];
  
          if (source) {
              var keys = Object.keys(source);
  
              for (var k = 0, kz = keys.length; k < kz; ++k) {
                  var key  = keys[k];
                  var desc = Object.getOwnPropertyDescriptor(source, key);
  
                  if (desc && desc["enumerable"]) {
                      target[key] = source[key];
                  }
              }
          }
      }
      return target;
  }
docs: {@es6 === Object ==============================================