* If the receiver isn't up-to-date then we synthesize the flags.
*/
- if (this.state === 'ready') return F_VALUE | F_DEPS;
+ if (STATE === 'ready') return F_VALUE | F_DEPS;
else if (this._generation === GENERATION) return this.__flags;
else if (this._value_function === null) return F_VALUE | F_DEPS;
else return 0;
var val;
- if (state === 'recomputing') {
+ if (STATE === 'recomputing') {
if (EVALUATING) {
this._dependents[EVALUATING._seq] = EVALUATING;
EVALUATING._dependencies[this._seq] = this;
*/
var d, f;
-
- state = 'recomputing';
+ var old_state = STATE;
+ STATE = 'recomputing';
try_finally(function () {
while (PENDING.length) {
d = PENDING.shift();
d = PENDING.shift();
d._value = BAD;
}
+ STATE = old_state;
});
}
*/
var op, val;
- var old_delayed, old_pending;
+ var old_delayed, old_pending, old_state;
switch (STATE) {
case 'frozen':
case 'ready':
old_delayed = DELAYED;
old_pending = PENDING;
+ old_state = STATE;
+ STATE = "frozen";
try_finally(function () {
DELAYED = [];
PENDING = [];
}, function () {
DELAYED = old_delayed;
PENDING = old_pending;
+ STATE = old_state;
});
break;
}