createMountWarningMembrane = function(prototype) {
    var membrane = {};
    var key;
    for (key in prototype) {
      defineMembraneProperty(membrane, prototype, key);
    }
    // These are properties that goes into the instance but not the prototype.
    // We can create the membrane on the prototype even though this will
    // result in a faulty hasOwnProperty check it's better perf.
    for (key in componentInstanceProperties) {
      if (componentInstanceProperties.hasOwnProperty(key) &&
          !(key in prototype)) {
        defineMembraneProperty(membrane, prototype, key);
      }
    }
    return membrane;
  }
Creates a membrane prototype which wraps the original prototype. If any
property is accessed in an unmounted state, a warning is issued.

@param {object} prototype Original prototype.
@return {object} The membrane prototype.
@private