whole_func_string: function (layout) {
          var me = this,
              ownerContext = me.getCmp(layout.owner);
  
          layout.pending = false;
  
          if (ownerContext.state.blocks) {
              return;
          }
  
          // We start with the assumption that the layout will finish and if it does not, it
          // must clear this flag. It turns out this is much simpler than knowing when a layout
          // is done (100% correctly) when base classes and derived classes are collaborating.
          // Knowing that some part of the layout is not done is much more obvious.
          layout.done = true;
  
          ++layout.calcCount;
          ++me.calcCount;
  
          layout.calculate(ownerContext);
  
          if (layout.done) {
              me.layoutDone(layout);
  
              if (layout.completeLayout) {
                  me.queueCompletion(layout);
              }
              if (layout.finalizeLayout) {
                  me.queueFinalize(layout);
              }
          } else if (!layout.pending && !layout.invalid && !(layout.blockCount + layout.triggerCount - layout.firedTriggers)) {
              // A layout that is not done and has no blocks or triggers that will queue it
              // automatically, must be queued now:
              me.queueLayout(layout);
          }
      }
func_code_string: function (layout) {
          var me = this,
              ownerContext = me.getCmp(layout.owner);
  
          layout.pending = false;
  
          if (ownerContext.state.blocks) {
              return;
          }
  
          // We start with the assumption that the layout will finish and if it does not, it
          // must clear this flag. It turns out this is much simpler than knowing when a layout
          // is done (100% correctly) when base classes and derived classes are collaborating.
          // Knowing that some part of the layout is not done is much more obvious.
          layout.done = true;
  
          ++layout.calcCount;
          ++me.calcCount;
  
          layout.calculate(ownerContext);
  
          if (layout.done) {
              me.layoutDone(layout);
  
              if (layout.completeLayout) {
                  me.queueCompletion(layout);
              }
              if (layout.finalizeLayout) {
                  me.queueFinalize(layout);
              }
          } else if (!layout.pending && !layout.invalid && !(layout.blockCount + layout.triggerCount - layout.firedTriggers)) {
              // A layout that is not done and has no blocks or triggers that will queue it
              // automatically, must be queued now:
              me.queueLayout(layout);
          }
      }
func_documentation_string: Runs one layout as part of a cycle.
  @private