not a proxy!

state-onchange
Rich Harris 1 week ago
parent 118e9aa91c
commit 36bfef986a

@ -6,7 +6,7 @@ export default test({
const [btn, btn2, btn3, btn4, btn5, btn6, btn7, btn8, btn9, btn10] =
target.querySelectorAll('button');
assert.deepEqual(logs, ['constructor count', 'constructor proxy']);
assert.deepEqual(logs, ['constructor count', 'constructor object']);
logs.length = 0;
@ -17,27 +17,27 @@ export default test({
assert.deepEqual(logs, ['count']);
flushSync(() => btn3.click());
assert.deepEqual(logs, ['count', 'proxy']);
assert.deepEqual(logs, ['count', 'object']);
flushSync(() => btn4.click());
assert.deepEqual(logs, ['count', 'proxy', 'class count']);
assert.deepEqual(logs, ['count', 'object', 'class count']);
flushSync(() => btn5.click());
assert.deepEqual(logs, ['count', 'proxy', 'class count']);
assert.deepEqual(logs, ['count', 'object', 'class count']);
flushSync(() => btn6.click());
assert.deepEqual(logs, ['count', 'proxy', 'class count', 'class proxy']);
assert.deepEqual(logs, ['count', 'object', 'class count', 'class object']);
flushSync(() => btn7.click());
assert.deepEqual(logs, ['count', 'proxy', 'class count', 'class proxy']);
assert.deepEqual(logs, ['count', 'object', 'class count', 'class object']);
flushSync(() => btn8.click());
assert.deepEqual(logs, ['count', 'proxy', 'class count', 'class proxy']);
assert.deepEqual(logs, ['count', 'object', 'class count', 'class object']);
flushSync(() => btn9.click());
assert.deepEqual(logs, ['count', 'proxy', 'class count', 'class proxy']);
assert.deepEqual(logs, ['count', 'object', 'class count', 'class object']);
flushSync(() => btn10.click());
assert.deepEqual(logs, ['count', 'proxy', 'class count', 'class proxy', 'arr']);
assert.deepEqual(logs, ['count', 'object', 'class count', 'class object', 'arr']);
}
});

@ -5,9 +5,9 @@
}
})
let proxy = $state.raw({count: 0}, {
let object = $state.raw({count: 0}, {
onchange(){
console.log("proxy");
console.log("object");
}
})
@ -17,9 +17,9 @@
console.log("class count");
}
})
proxy = $state.raw({count: 0}, {
object = $state.raw({count: 0}, {
onchange(){
console.log("class proxy");
console.log("class object");
}
})
@ -31,7 +31,7 @@
#in_constructor_proxy = $state({ count: 0 }, {
onchange(){
console.log("constructor proxy");
console.log("constructor object");
}
});
@ -52,14 +52,14 @@
</script>
<button onclick={()=> count++}>{count}</button>
<button onclick={()=> proxy.count++}>{proxy.count}</button>
<button onclick={()=> proxy = {count: proxy.count+1}}>{proxy.count}</button>
<button onclick={()=> object.count++}>{object.count}</button>
<button onclick={()=> object = {count: object.count+1}}>{object.count}</button>
<button onclick={()=> class_test.count++}>{class_test.count}</button>
<button onclick={()=> class_test.proxy.count++}>{class_test.proxy.count}</button>
<button onclick={()=> class_test.proxy = {count: class_test.proxy.count+1}}>{class_test.proxy.count}</button>
<button onclick={()=> class_test.object.count++}>{class_test.object.count}</button>
<button onclick={()=> class_test.object = {count: class_test.object.count+1}}>{class_test.object.count}</button>
<button onclick={()=> arr.push(arr.length)}>push</button>
<button onclick={()=>arr.splice(0, 2)}>splice</button>
<button onclick={()=>arr.sort((a,b)=>b-a)}>sort</button>
<button onclick={()=>arr = []}>assign</button>
<button onclick={()=>arr = []}>assign</button>

Loading…
Cancel
Save