more tweaks

pull/9531/head
Dominic Gannaway 3 years ago
parent 16d84e4114
commit 3cad660792

@ -1,7 +1,6 @@
import { subscribe_to_store } from '../../store/utils.js';
import { EMPTY_FUNC } from '../common.js';
import { unwrap } from './render.js';
import { map_delete, map_get, map_set } from './operations.js';
import { is_array } from './utils.js';
export const SOURCE = 1;
@ -197,22 +196,25 @@ function is_signal_dirty(signal) {
return true;
}
if ((flags & MAYBE_DIRTY) !== 0) {
const dependencies = /** @type {import('./types.js').ComputationSignal<V>} **/ (signal).dependencies;
const dependencies = /** @type {import('./types.js').ComputationSignal<V>} **/ (signal)
.dependencies;
if (dependencies !== null) {
const length = dependencies.length;
let i;
for (i = 0; i < length; i++) {
const dependency = dependencies[i];
const dep_flags = dependency.flags;
if ((dep_flags & MAYBE_DIRTY) !== 0 && !is_signal_dirty(dependency)) {
if ((dependency.flags & MAYBE_DIRTY) !== 0 && !is_signal_dirty(dependency)) {
set_signal_status(dependency, CLEAN);
continue;
}
// The flags can be marked as dirty from the above is_signal_dirty call.
if ((dependency.flags & DIRTY) !== 0) {
if ((dep_flags & DERIVED) !== 0) {
update_derived(/** @type {import('./types.js').ComputationSignal<V>} **/ (dependency), true);
if ((dependency.flags & DERIVED) !== 0) {
update_derived(
/** @type {import('./types.js').ComputationSignal<V>} **/ (dependency),
true
);
// Might have been mutated from above get.
if ((signal.flags & DIRTY) !== 0) {
return true;
@ -276,7 +278,9 @@ function execute_signal_fn(signal) {
dependencies[current_dependencies_index + i] = current_dependencies[i];
}
} else {
signal.dependencies = /** @type {import('./types.js').Signal<V>[]} **/ (dependencies = current_dependencies);
signal.dependencies = /** @type {import('./types.js').Signal<V>[]} **/ (
dependencies = current_dependencies
);
}
if (!current_skip_consumer) {

Loading…
Cancel
Save