Skip to content

Commit f110bda

Browse files
committed
no need to create a source outside an effect here, because it can't result in a reference
1 parent 6cb0605 commit f110bda

File tree

1 file changed

+11
-2
lines changed
  • packages/svelte/src/internal/client

1 file changed

+11
-2
lines changed

packages/svelte/src/internal/client/proxy.js

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
import { DEV } from 'esm-env';
2-
import { get, batch_inspect, current_component_context, untrack } from './runtime.js';
2+
import {
3+
get,
4+
batch_inspect,
5+
current_component_context,
6+
untrack,
7+
current_effect
8+
} from './runtime.js';
39
import {
410
array_prototype,
511
define_property,
@@ -243,7 +249,10 @@ const state_proxy_handler = {
243249
const has = Reflect.has(target, prop);
244250

245251
let s = metadata.s.get(prop);
246-
if (s !== undefined || !has || get_descriptor(target, prop)?.writable) {
252+
if (
253+
s !== undefined ||
254+
(current_effect !== null && (!has || get_descriptor(target, prop)?.writable))
255+
) {
247256
if (s === undefined) {
248257
s = (metadata.i ? source : mutable_source)(
249258
has ? proxy(target[prop], metadata.i, metadata.o) : UNINITIALIZED

0 commit comments

Comments
 (0)