+ _processDiscardCachedSize: function()
+ {
+ if (this._isLayoutBoundary) {
+ this.element.style.removeProperty("width");
+ this.element.style.removeProperty("height");
+ }
+ this._callOnVisibleChildren(this._processDiscardCachedSize);
+ },
+
+ _cacheSize: function()
+ {
+ this._prepareCacheSize();
+ this._applyCacheSize();
+ },
+
+ _prepareCacheSize: function()
+ {
+ if (this._isLayoutBoundary) {
+ this._cachedOffsetWidth = this.element.offsetWidth;
+ this._cachedOffsetHeight = this.element.offsetHeight;
+ }
+ this._callOnVisibleChildren(this._prepareCacheSize);
+ },
+
+ _applyCacheSize: function()
+ {
+ if (this._isLayoutBoundary) {
+ this.element.style.setProperty("width", this._cachedOffsetWidth + "px");
+ this.element.style.setProperty("height", this._cachedOffsetHeight + "px");
+ delete this._cachedOffsetWidth;
+ delete this._cachedOffsetHeight;
+ }
+ this._callOnVisibleChildren(this._applyCacheSize);
+ },
+