function freezeRenderState(renderState) {
  if (typeof renderState !== "object" || renderState === null) {
    return renderState;
  }

  let propName;
  const propNames = Object.keys(renderState);

  for (let i = 0; i < propNames.length; i++) {
    propName = propNames[i];
    if (
      renderState.hasOwnProperty(propName) &&
      propName !== "_applyFunctions"
    ) {
      renderState[propName] = freezeRenderState(renderState[propName]);
    }
  }
  return Object.freeze(renderState);
}
Returns frozen renderState as well as all of the object literal properties. This function is deep object freeze
function ignoring properties named "_applyFunctions".

@private

@param {object} renderState
@returns {object} Returns frozen renderState.