|
|
|
@ -28,7 +28,7 @@ import * as e from '../errors.js';
|
|
|
|
|
import { flush_tasks } from '../dom/task.js';
|
|
|
|
|
import { DEV } from 'esm-env';
|
|
|
|
|
import { invoke_error_boundary } from '../error-handling.js';
|
|
|
|
|
import { old_values, schedule_version } from './sources.js';
|
|
|
|
|
import { old_values } from './sources.js';
|
|
|
|
|
import { unlink_effect } from './effects.js';
|
|
|
|
|
import { unset_context } from './async.js';
|
|
|
|
|
|
|
|
|
@ -601,8 +601,6 @@ function flush_queued_effects(effects) {
|
|
|
|
|
var effect = effects[i++];
|
|
|
|
|
|
|
|
|
|
if ((effect.f & (DESTROYED | INERT)) === 0 && is_dirty(effect)) {
|
|
|
|
|
var sv = schedule_version;
|
|
|
|
|
|
|
|
|
|
eager_block_effects = [];
|
|
|
|
|
|
|
|
|
|
update_effect(effect);
|
|
|
|
@ -625,26 +623,19 @@ function flush_queued_effects(effects) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (eager_block_effects.length > 0) {
|
|
|
|
|
// TODO this feels incorrect! it gets the tests passing
|
|
|
|
|
old_values.clear();
|
|
|
|
|
|
|
|
|
|
for (const e of eager_block_effects) {
|
|
|
|
|
update_effect(e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
eager_block_effects = [];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// if a state change in a user effect invalidates a _different_ effect,
|
|
|
|
|
// abort and reschedule in case that effect now needs to be destroyed
|
|
|
|
|
if (schedule_version > sv && (effect.f & USER_EFFECT) !== 0) {
|
|
|
|
|
// break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
eager_block_effects = null;
|
|
|
|
|
|
|
|
|
|
while (i < length) {
|
|
|
|
|
schedule_effect(effects[i++]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|