Skip to content

Commit 2ae2bb8

Browse files
committed
revert
1 parent fb1fb17 commit 2ae2bb8

File tree

2 files changed

+17
-33
lines changed

2 files changed

+17
-33
lines changed
Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,20 @@
11
import { test } from '../../test';
22

33
export default test({
4-
compileOptions: {
5-
dev: true
6-
},
7-
8-
html: `<button>state1.value: a state2.value: a</button>`,
9-
4+
html: '<button>set</button><button>delete</button><p>a,b,c</p><p>{"a":1,"b":2,"c":3}</p>',
105
async test({ assert, target }) {
11-
const btn = target.querySelector('button');
6+
const [btn, bt2] = target.querySelectorAll('button');
127

138
await btn?.click();
14-
assert.htmlEqual(target.innerHTML, `<button>state1.value: b state2.value: b</button>`);
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+
);
1519
}
1620
});
Lines changed: 5 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,8 @@
11
<script>
2-
let foo = { value: 'a' }
3-
let state1 = $state(foo);
4-
let state2 = $state(foo);
2+
let numbers = $state({ a: 1, b: 2, c: 3 });
53
</script>
64

7-
<button onclick={() => {
8-
let new_state1 = {};
9-
let new_state2 = {};
10-
// This contains Symbol.$state and Symbol.$readonly and we can't do anything against it,
11-
// because it's called on the original object, not our state proxy
12-
Reflect.ownKeys(foo).forEach(k => {
13-
new_state1[k] = foo[k];
14-
new_state2[k] = foo[k];
15-
});
16-
new_state1.value = 'b';
17-
new_state2.value = 'b';
18-
// $.proxy will see that Symbol.$state exists on this object already, which shouldn't result in a stale value
19-
state1 = new_state1;
20-
// $.proxy can't look into Symbol.$state because of the frozen object
21-
state2 = Object.freeze(new_state2);
22-
}}
23-
>
24-
state1.value: {state1.value}
25-
state2.value: {state2.value}
26-
</button>
27-
28-
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)