freezeRenderState.js 1.0 KB

1234567891011121314151617181920212223242526272829
  1. import freezeObject from '../Core/freezeObject.js';
  2. /**
  3. * Returns frozen renderState as well as all of the object literal properties. This function is deep object freeze
  4. * function ignoring properties named "_applyFunctions".
  5. *
  6. * @private
  7. *
  8. * @param {Object} renderState
  9. * @returns {Object} Returns frozen renderState.
  10. *
  11. */
  12. function freezeRenderState(renderState) {
  13. if (typeof renderState !== 'object' || renderState === null) {
  14. return renderState;
  15. }
  16. var propName;
  17. var propNames = Object.keys(renderState);
  18. for (var i = 0; i < propNames.length; i++) {
  19. propName = propNames[i];
  20. if (renderState.hasOwnProperty(propName) && propName !== '_applyFunctions') {
  21. renderState[propName] = freezeRenderState(renderState[propName]);
  22. }
  23. }
  24. return freezeObject(renderState);
  25. }
  26. export default freezeRenderState;