code: function Task(taskHandler, blocked) {
         
          var task = this;
         
          /**
           * Whether this Task is blocked.
           * 
           * @type {boolean}
           */
          this.blocked = blocked;
  
          /**
           * Unblocks this Task, allowing it to run.
           */
          this.unblock = function() {
              if (task.blocked) {
                  task.blocked = false;
                  __flush_frames();
              }
          };
  
          /**
           * Calls the handler associated with this task IMMEDIATELY. This
           * function does not track whether this task is marked as blocked.
           * Enforcing the blocked status of tasks is up to the caller.
           */
          this.execute = function() {
              if (taskHandler) taskHandler();
          };
  
      }
docs: A container for an task handler. Each operation which must be ordered
  is associated with a Task that goes into a task queue. Tasks in this
  queue are executed in order once their handlers are set, while Tasks
  without handlers block themselves and any following Tasks from running.
  
  @constructor
  @private
  @param {function} taskHandler The function to call when this task
  runs, if any.
  @param {boolean} blocked Whether this task should start blocked.