code: function createObject(prototype, properties) {
    var result;
    /* istanbul ignore next */
    if (typeof Object.create === 'function') {
      result = Object.create(prototype);
    } else {
      Constructor.prototype = prototype;
      result = new Constructor();
      Constructor.prototype = null;
    }
  
    if (properties) {
      extendObject(true, result, properties);
    }
  
    return result;
  }
docs: Creates an object which inherits the given <code>prototype</code>.
  
  Optionally, the created object can be extended further with the specified <code>properties</code>.
  
  @param {Object} prototype - the prototype to be inherited by the created object
  @param {Object} [properties] - the optional properties to be extended by the created object
  @return {Object} The newly created object.
  @private