UNPKG

@cesium/engine

Version:

CesiumJS is a JavaScript library for creating 3D globes and 2D maps in a web browser without a plugin.

31 lines (28 loc) 811 B
/** * 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. * */ 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); } export default freezeRenderState;