Skip to content

Commit a04c591

Browse files
committed
feat: support .frozen
1 parent d531e4e commit a04c591

10 files changed

+12334
-1
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@
104104
"prettier-plugin-svelte": "^3.1.2",
105105
"rimraf": "^5.0.5",
106106
"semver": "^7.5.4",
107-
"svelte": "^5.0.0-next.25",
107+
"svelte": "^5.0.0-next.37",
108108
"svelte2tsx": "^0.7.0",
109109
"typescript": "~5.1.6",
110110
"typescript-eslint-parser-for-extra-files": "^0.6.0"

src/parser/typescript/analyze/index.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -318,6 +318,10 @@ function analyzeRuneVariables(
318318
"<T>(initial: T): T",
319319
"<T>(): T | undefined",
320320
]);
321+
appendDeclareNamespaceVirtualScripts(globalName, [
322+
"export function frozen<T>(initial: T): Readonly<T>;",
323+
"export function frozen<T>(): Readonly<T> | undefined;",
324+
]);
321325
break;
322326
}
323327
case "$derived": {
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<script>
2+
let numbers = $state.frozen([1, 2, 3]);
3+
</script>
4+
5+
<button onclick="{() => (numbers = [...numbers, numbers.length + 1])}">
6+
push
7+
</button>
8+
9+
<button onclick="{() => (numbers = numbers.slice(0, -1))}"> pop </button>
10+
11+
<p>
12+
{numbers.join(" + ") || 0}
13+
=
14+
{numbers.reduce((a, b) => a + b, 0)}
15+
</p>

0 commit comments

Comments
 (0)