Пример #1
0
mdb.action = function (name) {
    var delay = mdb.RUNTIME;
    var delayState = 'pause';

    switch (name) {
    case 'restart':
        appendToConsole('SStarting target process');
        delay = 500;
        break;

    case 'pause':
        delay = 0;
        break;

    case 'stepIn':
        ++stackDepth;
        break;

    case 'stepOut':
        --stackDepth;
        break;

    case 'stepOver':
        delay = 2000;
        break;

    case 'go':
        delayState = 'exit';
        break;

    default:
        throw new Error('bad action code');
    }

    if (delay) {
        if (mdb.mode.getValue() == 'run') {
            throw new Error('bad state: already running at ' + name);
        }
        mdb.mode.setValue('run');
    }

    if (pending) {
        scheduler.cancel(pending);
    }

    pending = scheduler.delay(mdb.mode.setValue.bind(mdb.mode, delayState),
                              delay);
};
Пример #2
0
// observable delay: starts false, becomes true after `ms` milliseconds
//
function Odelay(ms) {
    var b = O.slot(false);
    scheduler.delay(b.setValue.bind(b, true), ms);
    return b;
}