src/Display.js
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();
        };

    }
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();
        };

    }
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 ( ) ; } ; }
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.
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 .