Skip to content

Commit 9161448

Browse files
authored
fix: improve handling of object property deletions (#10456)
* fix: improve handling of object property deletions * revert * revert * revert
1 parent 1366932 commit 9161448

File tree

4 files changed

+34
-1
lines changed

4 files changed

+34
-1
lines changed

.changeset/orange-crews-rescue.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"svelte": patch
3+
---
4+
5+
fix: improve handling of object property deletions

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ const state_proxy_handler = {
157157
}
158158
if (s !== undefined) set(s, UNINITIALIZED);
159159

160-
if (prop in target) update(metadata.v);
160+
if (boolean) update(metadata.v);
161161

162162
return boolean;
163163
},
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import { test } from '../../test';
2+
3+
export default test({
4+
html: '<button>set</button><button>delete</button><p>a,b,c</p><p>{"a":1,"b":2,"c":3}</p>',
5+
async test({ assert, target }) {
6+
const [btn, bt2] = target.querySelectorAll('button');
7+
8+
await btn?.click();
9+
assert.htmlEqual(
10+
target.innerHTML,
11+
`<button>set</button><button>delete</button><p>a,b,c</p><p>{"a":1,"b":2,"c":3}</p>`
12+
);
13+
14+
await bt2?.click();
15+
assert.htmlEqual(
16+
target.innerHTML,
17+
`<button>set</button><button>delete</button><p>a,c</p><p>{"a":1,"c":3}</p>`
18+
);
19+
}
20+
});
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<script>
2+
let numbers = $state({ a: 1, b: 2, c: 3 });
3+
</script>
4+
5+
<button onclick={() => { numbers.b = 2; }}>set</button>
6+
<button onclick={() => { delete numbers.b; }}>delete</button>
7+
<p>{Object.keys(numbers)}</p>
8+
<p>{JSON.stringify(numbers)}</p>

0 commit comments

Comments
 (0)