docs: function apply(/*container[, source1,...sourceN] */) {
      if (arguments.length > 1 && arguments[0] != null)
          for (var i = 1; i < arguments.length; i++)
              for (var propName in arguments[i]) {
                  var source = arguments[i];
                  if (source.hasOwnProperty(propName))
                      try {
                          arguments[0][propName] = source[propName];
                      } catch (e) {
                      }
              }
      return arguments[0];
  }