remove pre effects

pull/10958/head
Dominic Gannaway 6 months ago
parent bf875e057b
commit 6152e7dc18

@ -1,18 +1,17 @@
export const DERIVED = 1 << 1;
export const EFFECT = 1 << 2;
export const PRE_EFFECT = 1 << 3;
export const RENDER_EFFECT = 1 << 4;
export const BLOCK_EFFECT = 1 << 5;
export const BRANCH_EFFECT = 1 << 6;
export const ROOT_EFFECT = 1 << 7;
export const UNOWNED = 1 << 8;
export const CLEAN = 1 << 9;
export const DIRTY = 1 << 10;
export const MAYBE_DIRTY = 1 << 11;
export const INERT = 1 << 12;
export const DESTROYED = 1 << 13;
export const IS_ELSEIF = 1 << 14;
export const EFFECT_RAN = 1 << 15;
export const RENDER_EFFECT = 1 << 3;
export const BLOCK_EFFECT = 1 << 4;
export const BRANCH_EFFECT = 1 << 5;
export const ROOT_EFFECT = 1 << 6;
export const UNOWNED = 1 << 7;
export const CLEAN = 1 << 8;
export const DIRTY = 1 << 9;
export const MAYBE_DIRTY = 1 << 10;
export const INERT = 1 << 11;
export const DESTROYED = 1 << 12;
export const IS_ELSEIF = 1 << 13;
export const EFFECT_RAN = 1 << 14;
export const UNINITIALIZED = Symbol();
export const STATE_SYMBOL = Symbol('$state');

@ -19,7 +19,6 @@ import {
BRANCH_EFFECT,
RENDER_EFFECT,
EFFECT,
PRE_EFFECT,
DESTROYED,
INERT,
IS_ELSEIF,
@ -183,7 +182,7 @@ export function legacy_pre_effect_reset() {
* @returns {import('#client').Effect}
*/
export function pre_effect(fn) {
return create_effect(PRE_EFFECT, fn, true);
return create_effect(RENDER_EFFECT, fn, true);
}
/**

@ -1,7 +1,7 @@
import type { Block, ComponentContext, Dom, Equals, TransitionManager } from '#client';
import type { EFFECT, PRE_EFFECT, RENDER_EFFECT } from '../constants';
import type { ComponentContext, Dom, Equals, TransitionManager } from '#client';
import type { EFFECT, RENDER_EFFECT } from '../constants';
export type EffectType = typeof EFFECT | typeof PRE_EFFECT | typeof RENDER_EFFECT;
export type EffectType = typeof EFFECT | typeof RENDER_EFFECT;
export interface Signal {
/** Flags bitmask */

@ -11,7 +11,6 @@ import { unstate } from './proxy.js';
import { destroy_effect, user_pre_effect } from './reactivity/effects.js';
import {
EFFECT,
PRE_EFFECT,
RENDER_EFFECT,
DIRTY,
MAYBE_DIRTY,
@ -402,11 +401,6 @@ export function execute_effect(effect) {
current_effect = previous_effect;
current_component_context = previous_component_context;
}
const parent = effect.parent;
if ((flags & PRE_EFFECT) !== 0 && parent !== null) {
flush_local_pre_effects(parent);
}
}
function infinite_loop_guard() {
@ -436,7 +430,7 @@ function flush_queued_root_effects(root_effects) {
for (i = 0; i < root_effects.length; i++) {
signal = root_effects[i];
effects = get_nested_effects(signal, PRE_EFFECT | RENDER_EFFECT | EFFECT);
effects = get_nested_effects(signal, RENDER_EFFECT | EFFECT);
flush_queued_effects(effects);
}
}
@ -529,7 +523,7 @@ export function schedule_effect(signal) {
* @param {import('./types.js').Effect} effect
* @param {number} filter_flags
* @param {boolean} shallow
* @param {import('./types.js').Effect[]} collected_pre_and_render
* @param {import('./types.js').Effect[]} collected_render
* @param {import('./types.js').Effect[]} collected_user
* @returns {void}
*/
@ -537,7 +531,7 @@ function recursively_collect_effects(
effect,
filter_flags,
shallow,
collected_pre_and_render,
collected_render,
collected_user
) {
var effects = effect.effects;
@ -545,7 +539,6 @@ function recursively_collect_effects(
return;
}
var i, s, child, flags;
var pre = [];
var render = [];
var user = [];
var is_branch;
@ -562,33 +555,12 @@ function recursively_collect_effects(
set_signal_status(child, CLEAN);
}
if ((flags & PRE_EFFECT) !== 0) {
if ((flags & RENDER_EFFECT) !== 0) {
if (is_branch) {
if (shallow) {
continue;
}
recursively_collect_effects(
child,
filter_flags,
false,
collected_pre_and_render,
collected_user
);
} else {
pre.push(child);
}
} else if ((flags & RENDER_EFFECT) !== 0) {
if (is_branch) {
if (shallow) {
continue;
}
recursively_collect_effects(
child,
filter_flags,
false,
collected_pre_and_render,
collected_user
);
recursively_collect_effects(child, filter_flags, false, collected_render, collected_user);
} else {
render.push(child);
}
@ -597,57 +569,36 @@ function recursively_collect_effects(
if (shallow) {
continue;
}
recursively_collect_effects(child, filter_flags, false, collected_render, collected_user);
} else {
user.push(child);
}
}
}
if (render.length > 0) {
if ((filter_flags & RENDER_EFFECT) !== 0) {
collected_render.push(...render);
}
if (!shallow) {
for (s = 0; s < render.length; s++) {
recursively_collect_effects(
child,
render[s],
filter_flags,
false,
collected_pre_and_render,
collected_render,
collected_user
);
} else {
user.push(child);
}
}
}
if ((filter_flags & PRE_EFFECT) !== 0 && pre.length > 0) {
collected_pre_and_render.push(...pre);
}
if ((filter_flags & RENDER_EFFECT) !== 0 && render.length > 0) {
collected_pre_and_render.push(...render);
}
if (!shallow) {
for (s = 0; s < pre.length; s++) {
recursively_collect_effects(
pre[s],
filter_flags,
false,
collected_pre_and_render,
collected_user
);
}
for (s = 0; s < render.length; s++) {
recursively_collect_effects(
render[s],
filter_flags,
false,
collected_pre_and_render,
collected_user
);
if (user.length > 0) {
if ((filter_flags & EFFECT) !== 0) {
collected_user.push(...user);
}
}
if ((filter_flags & EFFECT) !== 0 && user.length > 0) {
collected_user.push(...user);
}
if (!shallow) {
for (s = 0; s < user.length; s++) {
recursively_collect_effects(
user[s],
filter_flags,
false,
collected_pre_and_render,
collected_user
);
if (!shallow) {
for (s = 0; s < user.length; s++) {
recursively_collect_effects(user[s], filter_flags, false, collected_render, collected_user);
}
}
}
}
@ -692,18 +643,6 @@ export function flush_local_render_effects(effect) {
flush_queued_effects(render_effects);
}
/**
* @param {import('./types.js').Effect} effect
* @returns {void}
*/
export function flush_local_pre_effects(effect) {
/**
* @type {import("./types.js").Effect[]}
*/
var pre_effects = get_nested_effects(effect, PRE_EFFECT, true);
flush_queued_effects(pre_effects);
}
/**
* Synchronously flushes any pending state changes and those that result from it.
* @param {() => void} [fn]

@ -7,7 +7,6 @@ export default test({
assert.deepEqual(log, [
[false, 0, 0],
[true, 0, 0],
[true, 100, 100]
]);
}

Loading…
Cancel
Save