From 063ed9db479eaaf22010cc6c01a678afeb6cdbd6 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Mon, 5 Aug 2024 14:17:11 -0400 Subject: [PATCH] redo --- .../svelte/messages/client-errors/errors.md | 4 -- packages/svelte/src/ambient.d.ts | 9 +++-- .../2-analyze/visitors/CallExpression.js | 2 +- .../2-analyze/visitors/VariableDeclarator.js | 4 +- .../3-transform/client/transform-client.js | 14 +------ .../phases/3-transform/client/utils.js | 8 ++-- .../3-transform/client/visitors/ClassBody.js | 18 ++------- .../client/visitors/VariableDeclaration.js | 6 +-- .../server/visitors/PropertyDefinition.js | 2 +- .../svelte/src/internal/client/constants.js | 1 - .../src/internal/client/dom/blocks/each.js | 9 +---- packages/svelte/src/internal/client/freeze.js | 40 ------------------- .../svelte/src/internal/client/freeze.test.ts | 16 -------- packages/svelte/src/internal/client/index.js | 1 - packages/svelte/src/internal/client/proxy.js | 9 +---- packages/svelte/src/utils.js | 2 +- .../samples/bind-this-frozen/main.svelte | 2 +- .../binding-property-static/_config.js | 4 +- .../binding-property-static/main.svelte | 6 +-- .../class-frozen-state-object/_config.js | 4 +- .../class-frozen-state-object/main.svelte | 14 +++---- .../samples/class-frozen-state/main.svelte | 2 +- .../_config.js | 4 +- .../main.svelte | 14 +++---- .../class-private-frozen-state/main.svelte | 2 +- .../samples/each-updates-frozen/main.svelte | 20 +++++----- .../readonly-state-replace/main.svelte | 2 +- .../samples/readonly-state/main.svelte | 4 +- 28 files changed, 63 insertions(+), 160 deletions(-) delete mode 100644 packages/svelte/src/internal/client/freeze.js delete mode 100644 packages/svelte/src/internal/client/freeze.test.ts diff --git a/packages/svelte/messages/client-errors/errors.md b/packages/svelte/messages/client-errors/errors.md index 442a9e7684e3..e51242d8f63f 100644 --- a/packages/svelte/messages/client-errors/errors.md +++ b/packages/svelte/messages/client-errors/errors.md @@ -60,10 +60,6 @@ > The `%rune%` rune is only available inside `.svelte` and `.svelte.js/ts` files -## state_frozen_invalid_argument - -> The argument to `$state.frozen(...)` cannot be an object created with `$state(...)`. You should create a copy of it first, for example with `$state.snapshot` - ## state_prototype_fixed > Cannot set prototype of `$state` object diff --git a/packages/svelte/src/ambient.d.ts b/packages/svelte/src/ambient.d.ts index 63a3873d3f19..82242cb4948c 100644 --- a/packages/svelte/src/ambient.d.ts +++ b/packages/svelte/src/ambient.d.ts @@ -102,12 +102,13 @@ declare namespace $state { : never; /** - * Declares reactive read-only state that is shallowly immutable. + * Declares state that is _not_ made deeply reactive — instead of mutating it, + * you must reassign it. * * Example: * ```ts * - + diff --git a/packages/svelte/tests/runtime-runes/samples/class-frozen-state/main.svelte b/packages/svelte/tests/runtime-runes/samples/class-frozen-state/main.svelte index a723976ea969..2913d1ececaa 100644 --- a/packages/svelte/tests/runtime-runes/samples/class-frozen-state/main.svelte +++ b/packages/svelte/tests/runtime-runes/samples/class-frozen-state/main.svelte @@ -1,6 +1,6 @@ diff --git a/packages/svelte/tests/runtime-runes/samples/class-private-frozen-state-object/_config.js b/packages/svelte/tests/runtime-runes/samples/class-private-frozen-state-object/_config.js index 4b043a75e2b1..ad93c66761bc 100644 --- a/packages/svelte/tests/runtime-runes/samples/class-private-frozen-state-object/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/class-private-frozen-state-object/_config.js @@ -4,7 +4,7 @@ import { test } from '../../test'; export default test({ html: ``, - test({ assert, target, logs }) { + test({ assert, target }) { const btn = target.querySelector('button'); btn?.click(); @@ -14,7 +14,5 @@ export default test({ btn?.click(); flushSync(); assert.htmlEqual(target.innerHTML, ``); - - assert.deepEqual(logs, ['read only', 'read only']); } }); diff --git a/packages/svelte/tests/runtime-runes/samples/class-private-frozen-state-object/main.svelte b/packages/svelte/tests/runtime-runes/samples/class-private-frozen-state-object/main.svelte index 557dc8699811..f7f1c74c29b9 100644 --- a/packages/svelte/tests/runtime-runes/samples/class-private-frozen-state-object/main.svelte +++ b/packages/svelte/tests/runtime-runes/samples/class-private-frozen-state-object/main.svelte @@ -1,6 +1,6 @@ - + diff --git a/packages/svelte/tests/runtime-runes/samples/class-private-frozen-state/main.svelte b/packages/svelte/tests/runtime-runes/samples/class-private-frozen-state/main.svelte index f509f351bbfa..f4812b1dde28 100644 --- a/packages/svelte/tests/runtime-runes/samples/class-private-frozen-state/main.svelte +++ b/packages/svelte/tests/runtime-runes/samples/class-private-frozen-state/main.svelte @@ -1,6 +1,6 @@ {#each frozen_items as item (item.id)} {console.log(item.text)} - {item.text} + {item.text} {/each} - + diff --git a/packages/svelte/tests/runtime-runes/samples/readonly-state-replace/main.svelte b/packages/svelte/tests/runtime-runes/samples/readonly-state-replace/main.svelte index 4a538070301b..4b5dc5ac59d7 100644 --- a/packages/svelte/tests/runtime-runes/samples/readonly-state-replace/main.svelte +++ b/packages/svelte/tests/runtime-runes/samples/readonly-state-replace/main.svelte @@ -1,5 +1,5 @@