fix import order causing Cannot read properties of undefined on dev load

pull/17362/head
David Roizenman 3 days ago
parent f00cdee0a1
commit a21bb4c7e8
No known key found for this signature in database
GPG Key ID: CD7B405D13E241B6

@ -28,9 +28,9 @@ import {
is_dirty, is_dirty,
is_updating_effect, is_updating_effect,
set_is_updating_effect, set_is_updating_effect,
set_signal_status,
update_effect update_effect
} from '../runtime.js'; } from '../runtime.js';
import { set_signal_status } from './status.js';
import * as e from '../errors.js'; import * as e from '../errors.js';
import { flush_tasks, queue_micro_task } from '../dom/task.js'; import { flush_tasks, queue_micro_task } from '../dom/task.js';
import { DEV } from 'esm-env'; import { DEV } from 'esm-env';

@ -17,14 +17,13 @@ import {
import { import {
active_reaction, active_reaction,
active_effect, active_effect,
set_signal_status,
update_reaction, update_reaction,
increment_write_version, increment_write_version,
set_active_effect, set_active_effect,
push_reaction_value, push_reaction_value,
is_destroying_effect, is_destroying_effect
update_derived_status
} from '../runtime.js'; } from '../runtime.js';
import { set_signal_status, update_derived_status } from './status.js';
import { equals, safe_equals } from './equality.js'; import { equals, safe_equals } from './equality.js';
import * as e from '../errors.js'; import * as e from '../errors.js';
import * as w from '../warnings.js'; import * as w from '../warnings.js';

@ -1,4 +1,5 @@
/** @import { ComponentContext, ComponentContextLegacy, Derived, Effect, TemplateNode, TransitionManager } from '#client' */ /** @import { ComponentContext, ComponentContextLegacy, Derived, Effect, TemplateNode, TransitionManager } from '#client' */
import { set_signal_status } from './status.js';
import { import {
is_dirty, is_dirty,
active_effect, active_effect,
@ -9,7 +10,6 @@ import {
remove_reactions, remove_reactions,
set_active_reaction, set_active_reaction,
set_is_destroying_effect, set_is_destroying_effect,
set_signal_status,
untrack, untrack,
untracking untracking
} from '../runtime.js'; } from '../runtime.js';

@ -6,7 +6,6 @@ import {
untracked_writes, untracked_writes,
get, get,
set_untracked_writes, set_untracked_writes,
set_signal_status,
untrack, untrack,
increment_write_version, increment_write_version,
update_effect, update_effect,
@ -16,9 +15,9 @@ import {
is_destroying_effect, is_destroying_effect,
push_reaction_value, push_reaction_value,
set_is_updating_effect, set_is_updating_effect,
is_updating_effect, is_updating_effect
update_derived_status
} from '../runtime.js'; } from '../runtime.js';
import { set_signal_status, update_derived_status } from './status.js';
import { equals, safe_equals } from './equality.js'; import { equals, safe_equals } from './equality.js';
import { import {
CLEAN, CLEAN,

@ -0,0 +1,25 @@
/** @import { Derived, Signal } from '#client' */
import { CLEAN, CONNECTED, DIRTY, MAYBE_DIRTY } from '#client/constants';
const STATUS_MASK = ~(DIRTY | MAYBE_DIRTY | CLEAN);
/**
* @param {Signal} signal
* @param {number} status
*/
export function set_signal_status(signal, status) {
signal.f = (signal.f & STATUS_MASK) | status;
}
/**
* Set a derived's status to CLEAN or MAYBE_DIRTY based on its connection state.
* @param {Derived} derived
*/
export function update_derived_status(derived) {
// Only mark as MAYBE_DIRTY if disconnected and has dependencies.
if ((derived.f & CONNECTED) !== 0 || derived.deps === null) {
set_signal_status(derived, CLEAN);
} else {
set_signal_status(derived, MAYBE_DIRTY);
}
}

@ -55,6 +55,7 @@ import { handle_error } from './error-handling.js';
import { UNINITIALIZED } from '../../constants.js'; import { UNINITIALIZED } from '../../constants.js';
import { captured_signals } from './legacy.js'; import { captured_signals } from './legacy.js';
import { without_reactive_context } from './dom/elements/bindings/shared.js'; import { without_reactive_context } from './dom/elements/bindings/shared.js';
import { set_signal_status, update_derived_status } from './reactivity/status.js';
export let is_updating_effect = false; export let is_updating_effect = false;
@ -724,30 +725,6 @@ export function untrack(fn) {
} }
} }
const STATUS_MASK = ~(DIRTY | MAYBE_DIRTY | CLEAN);
/**
* @param {Signal} signal
* @param {number} status
* @returns {void}
*/
export function set_signal_status(signal, status) {
signal.f = (signal.f & STATUS_MASK) | status;
}
/**
* Set a derived's status to CLEAN or MAYBE_DIRTY based on its connection state.
* @param {Derived} derived
*/
export function update_derived_status(derived) {
// Only mark as MAYBE_DIRTY if disconnected and has dependencies.
if ((derived.f & CONNECTED) !== 0 || derived.deps === null) {
set_signal_status(derived, CLEAN);
} else {
set_signal_status(derived, MAYBE_DIRTY);
}
}
/** /**
* @param {Record<string | symbol, unknown>} obj * @param {Record<string | symbol, unknown>} obj
* @param {Array<string | symbol>} keys * @param {Array<string | symbol>} keys

@ -3,7 +3,8 @@ import { DIRTY, LEGACY_PROPS, MAYBE_DIRTY } from '../internal/client/constants.j
import { user_pre_effect } from '../internal/client/reactivity/effects.js'; import { user_pre_effect } from '../internal/client/reactivity/effects.js';
import { mutable_source, set } from '../internal/client/reactivity/sources.js'; import { mutable_source, set } from '../internal/client/reactivity/sources.js';
import { hydrate, mount, unmount } from '../internal/client/render.js'; import { hydrate, mount, unmount } from '../internal/client/render.js';
import { active_effect, get, set_signal_status } from '../internal/client/runtime.js'; import { active_effect, get } from '../internal/client/runtime.js';
import { set_signal_status } from '../internal/client/reactivity/status.js';
import { flushSync } from '../internal/client/reactivity/batch.js'; import { flushSync } from '../internal/client/reactivity/batch.js';
import { define_property, is_array } from '../internal/shared/utils.js'; import { define_property, is_array } from '../internal/shared/utils.js';
import * as e from '../internal/client/errors.js'; import * as e from '../internal/client/errors.js';

Loading…
Cancel
Save