From e01556c4eb2b4538ee2ecc17901b8362f4b36ec2 Mon Sep 17 00:00:00 2001 From: tanhauhau Date: Sun, 14 Apr 2024 15:26:34 +0800 Subject: [PATCH 1/5] feat: allow $inspect reactivity map, set, date --- .changeset/tiny-poems-doubt.md | 5 ++ .../svelte/src/internal/client/constants.js | 1 + .../svelte/src/internal/client/runtime.js | 23 +++++- packages/svelte/src/reactivity/date.js | 5 ++ packages/svelte/src/reactivity/map.js | 14 ++++ packages/svelte/src/reactivity/set.js | 4 + .../samples/inspect-reactivity/_config.js | 81 +++++++++++++++++++ .../samples/inspect-reactivity/log.js | 2 + .../samples/inspect-reactivity/main.svelte | 27 +++++++ packages/svelte/types/index.d.ts | 4 + 10 files changed, 164 insertions(+), 2 deletions(-) create mode 100644 .changeset/tiny-poems-doubt.md create mode 100644 packages/svelte/tests/runtime-runes/samples/inspect-reactivity/_config.js create mode 100644 packages/svelte/tests/runtime-runes/samples/inspect-reactivity/log.js create mode 100644 packages/svelte/tests/runtime-runes/samples/inspect-reactivity/main.svelte diff --git a/.changeset/tiny-poems-doubt.md b/.changeset/tiny-poems-doubt.md new file mode 100644 index 000000000000..b908d95df2e2 --- /dev/null +++ b/.changeset/tiny-poems-doubt.md @@ -0,0 +1,5 @@ +--- +"svelte": patch +--- + +feat: allow inspect reactivity map, set, date diff --git a/packages/svelte/src/internal/client/constants.js b/packages/svelte/src/internal/client/constants.js index 563e10384a6a..8e883f8e7063 100644 --- a/packages/svelte/src/internal/client/constants.js +++ b/packages/svelte/src/internal/client/constants.js @@ -14,3 +14,4 @@ export const IS_ELSEIF = 1 << 13; export const EFFECT_RAN = 1 << 14; export const STATE_SYMBOL = Symbol('$state'); +export const INSPECT_SYMBOL = Symbol('$inspect'); diff --git a/packages/svelte/src/internal/client/runtime.js b/packages/svelte/src/internal/client/runtime.js index c1b8ee3e441a..2cabd471247b 100644 --- a/packages/svelte/src/internal/client/runtime.js +++ b/packages/svelte/src/internal/client/runtime.js @@ -22,7 +22,8 @@ import { BRANCH_EFFECT, STATE_SYMBOL, BLOCK_EFFECT, - ROOT_EFFECT + ROOT_EFFECT, + INSPECT_SYMBOL } from './constants.js'; import { flush_tasks } from './dom/task.js'; import { add_owner } from './dev/ownership.js'; @@ -1096,6 +1097,24 @@ export function pop(component) { return component || /** @type {T} */ ({}); } +/** + * + * This is called from the inspect. + * Deeply traverse every item in the array with `deep_read` to register for inspect callback + * If the item implements INSPECT_SYMBOL, will use that instead + * @param {Array} value + * @returns {void} + */ +function deep_read_inpect(value) { + for (const item of value) { + if (item && typeof item[INSPECT_SYMBOL] === 'function') { + item[INSPECT_SYMBOL](); + } else { + deep_read(item); + } + } +} + /** * Possibly traverse an object and read all its properties so that they're all reactive in case this is `$state`. * Does only check first level of an object for performance reasons (heuristic should be good for 99% of all cases). @@ -1226,7 +1245,7 @@ export function inspect(get_value, inspect = console.log) { inspect_fn = fn; const value = get_value(); - deep_read(value); + deep_read_inpect(value); inspect_fn = null; const signals = inspect_captured_signals.slice(); diff --git a/packages/svelte/src/reactivity/date.js b/packages/svelte/src/reactivity/date.js index cf43dfe4ab43..6ed6884278c7 100644 --- a/packages/svelte/src/reactivity/date.js +++ b/packages/svelte/src/reactivity/date.js @@ -1,3 +1,4 @@ +import { INSPECT_SYMBOL } from '../internal/client/constants.js'; import { source, set } from '../internal/client/reactivity/sources.js'; import { get } from '../internal/client/runtime.js'; @@ -99,4 +100,8 @@ export class ReactiveDate extends Date { super(...values); this.#init(); } + + [INSPECT_SYMBOL]() { + get(this.#raw_time); + } } diff --git a/packages/svelte/src/reactivity/map.js b/packages/svelte/src/reactivity/map.js index fb1e4e848b0a..bee2649624c1 100644 --- a/packages/svelte/src/reactivity/map.js +++ b/packages/svelte/src/reactivity/map.js @@ -3,6 +3,7 @@ import { source, set } from '../internal/client/reactivity/sources.js'; import { get } from '../internal/client/runtime.js'; import { UNINITIALIZED } from '../constants.js'; import { map } from './utils.js'; +import { INSPECT_SYMBOL } from '../internal/client/constants.js'; /** * @template K @@ -12,6 +13,7 @@ export class ReactiveMap extends Map { /** @type {Map>} */ #sources = new Map(); #version = source(0); + #inspect_version = source(0); #size = source(0); /** @@ -38,6 +40,9 @@ export class ReactiveMap extends Map { #increment_version() { set(this.#version, this.#version.v + 1); } + #increment_inspect_version() { + set(this.#inspect_version, this.#inspect_version.v + 1); + } /** @param {K} key */ has(key) { @@ -92,8 +97,11 @@ export class ReactiveMap extends Map { sources.set(key, source(value)); set(this.#size, sources.size); this.#increment_version(); + this.#increment_inspect_version(); } else { + const old_version = s.version; set(s, value); + if (s.version !== old_version) this.#increment_inspect_version(); } return super.set(key, value); @@ -109,6 +117,7 @@ export class ReactiveMap extends Map { set(this.#size, sources.size); set(s, /** @type {V} */ (UNINITIALIZED)); this.#increment_version(); + this.#increment_inspect_version(); } return super.delete(key); @@ -123,6 +132,7 @@ export class ReactiveMap extends Map { set(s, /** @type {V} */ (UNINITIALIZED)); } this.#increment_version(); + this.#increment_inspect_version(); } sources.clear(); @@ -155,4 +165,8 @@ export class ReactiveMap extends Map { get size() { return get(this.#size); } + + [INSPECT_SYMBOL]() { + get(this.#inspect_version); + } } diff --git a/packages/svelte/src/reactivity/set.js b/packages/svelte/src/reactivity/set.js index 8a889c32d060..e7d6c3adb7cd 100644 --- a/packages/svelte/src/reactivity/set.js +++ b/packages/svelte/src/reactivity/set.js @@ -2,6 +2,7 @@ import { DEV } from 'esm-env'; import { source, set } from '../internal/client/reactivity/sources.js'; import { get } from '../internal/client/runtime.js'; import { map } from './utils.js'; +import { INSPECT_SYMBOL } from '../internal/client/constants.js'; var read_methods = ['forEach', 'isDisjointFrom', 'isSubsetOf', 'isSupersetOf']; var set_like_methods = ['difference', 'intersection', 'symmetricDifference', 'union']; @@ -150,4 +151,7 @@ export class ReactiveSet extends Set { get size() { return get(this.#size); } + [INSPECT_SYMBOL]() { + get(this.#version); + } } diff --git a/packages/svelte/tests/runtime-runes/samples/inspect-reactivity/_config.js b/packages/svelte/tests/runtime-runes/samples/inspect-reactivity/_config.js new file mode 100644 index 000000000000..3744392a909b --- /dev/null +++ b/packages/svelte/tests/runtime-runes/samples/inspect-reactivity/_config.js @@ -0,0 +1,81 @@ +import { test } from '../../test'; +import { flushSync } from 'svelte'; +import { log } from './log'; + +export default test({ + compileOptions: { + dev: true + }, + before_test() { + log.length = 0; + }, + async test({ assert, target }) { + const [in1, in2] = target.querySelectorAll('input'); + const [b1, b2, b3] = target.querySelectorAll('button'); + + assert.deepEqual(log, [ + { label: 'map', type: 'init', values: [] }, + { label: 'set', type: 'init', values: [] }, + { label: 'date', type: 'init', values: 1712966400000 } + ]); + log.length = 0; + + b1.click(); // map.set('key', 'value') + + in1.value = 'name'; + in2.value = 'Svelte'; + in1.dispatchEvent(new window.Event('input', { bubbles: true })); + in2.dispatchEvent(new window.Event('input', { bubbles: true })); + flushSync(() => b1.click()); // map.set('name', 'Svelte') + + in2.value = 'World'; + in2.dispatchEvent(new window.Event('input', { bubbles: true })); + flushSync(() => b1.click()); // map.set('name', 'World') + flushSync(() => b1.click()); // map.set('name', 'World') + + assert.deepEqual(log, [ + { label: 'map', type: 'update', values: [['key', 'value']] }, + { + label: 'map', + type: 'update', + values: [ + ['key', 'value'], + ['name', 'Svelte'] + ] + }, + { + label: 'map', + type: 'update', + values: [ + ['key', 'value'], + ['name', 'World'] + ] + } + ]); + log.length = 0; + + b2.click(); // set.add('name'); + + in1.value = 'Svelte'; + in1.dispatchEvent(new window.Event('input', { bubbles: true })); + b2.click(); // set.add('Svelte'); + + b2.click(); // set.add('Svelte'); + + assert.deepEqual(log, [ + { label: 'set', type: 'update', values: ['name'] }, + { label: 'set', type: 'update', values: ['name', 'Svelte'] } + ]); + log.length = 0; + + b3.click(); // date.minutes++ + b3.click(); // date.minutes++ + b3.click(); // date.minutes++ + + assert.deepEqual(log, [ + { label: 'date', type: 'update', values: 1712966460000 }, + { label: 'date', type: 'update', values: 1712966520000 }, + { label: 'date', type: 'update', values: 1712966580000 } + ]); + } +}); diff --git a/packages/svelte/tests/runtime-runes/samples/inspect-reactivity/log.js b/packages/svelte/tests/runtime-runes/samples/inspect-reactivity/log.js new file mode 100644 index 000000000000..d3df521f4da7 --- /dev/null +++ b/packages/svelte/tests/runtime-runes/samples/inspect-reactivity/log.js @@ -0,0 +1,2 @@ +/** @type {any[]} */ +export const log = []; diff --git a/packages/svelte/tests/runtime-runes/samples/inspect-reactivity/main.svelte b/packages/svelte/tests/runtime-runes/samples/inspect-reactivity/main.svelte new file mode 100644 index 000000000000..3bbe39a46efe --- /dev/null +++ b/packages/svelte/tests/runtime-runes/samples/inspect-reactivity/main.svelte @@ -0,0 +1,27 @@ + + + + + + + + \ No newline at end of file diff --git a/packages/svelte/types/index.d.ts b/packages/svelte/types/index.d.ts index 0342dc5a24fe..d71e6aead429 100644 --- a/packages/svelte/types/index.d.ts +++ b/packages/svelte/types/index.d.ts @@ -1972,6 +1972,7 @@ declare module 'svelte/reactivity' { class ReactiveDate extends Date { constructor(...values: any[]); + [INSPECT_SYMBOL](): void; #private; } class ReactiveSet extends Set { @@ -1987,6 +1988,7 @@ declare module 'svelte/reactivity' { values(): IterableIterator; entries(): IterableIterator<[T, T]>; [Symbol.iterator](): IterableIterator; + [INSPECT_SYMBOL](): void; #private; } class ReactiveMap extends Map { @@ -2006,6 +2008,7 @@ declare module 'svelte/reactivity' { values(): IterableIterator; entries(): IterableIterator<[K, V]>; [Symbol.iterator](): IterableIterator<[K, V]>; + [INSPECT_SYMBOL](): void; #private; } class ReactiveURL extends URL { @@ -2018,6 +2021,7 @@ declare module 'svelte/reactivity' { #private; } const REPLACE: unique symbol; + const INSPECT_SYMBOL: unique symbol; export { ReactiveDate as Date, ReactiveSet as Set, ReactiveMap as Map, ReactiveURL as URL, ReactiveURLSearchParams as URLSearchParams }; } From 784af9f98b3c23e0b71e66ff097a5767b7276349 Mon Sep 17 00:00:00 2001 From: tanhauhau Date: Sun, 14 Apr 2024 21:15:25 +0800 Subject: [PATCH 2/5] feat: inspect map without adding new data source --- packages/svelte/src/reactivity/map.js | 17 +++++++---------- .../samples/inspect-reactivity/_config.js | 14 +++++++------- 2 files changed, 14 insertions(+), 17 deletions(-) diff --git a/packages/svelte/src/reactivity/map.js b/packages/svelte/src/reactivity/map.js index bee2649624c1..1e4f0331fc20 100644 --- a/packages/svelte/src/reactivity/map.js +++ b/packages/svelte/src/reactivity/map.js @@ -13,7 +13,6 @@ export class ReactiveMap extends Map { /** @type {Map>} */ #sources = new Map(); #version = source(0); - #inspect_version = source(0); #size = source(0); /** @@ -40,9 +39,6 @@ export class ReactiveMap extends Map { #increment_version() { set(this.#version, this.#version.v + 1); } - #increment_inspect_version() { - set(this.#inspect_version, this.#inspect_version.v + 1); - } /** @param {K} key */ has(key) { @@ -97,11 +93,8 @@ export class ReactiveMap extends Map { sources.set(key, source(value)); set(this.#size, sources.size); this.#increment_version(); - this.#increment_inspect_version(); } else { - const old_version = s.version; set(s, value); - if (s.version !== old_version) this.#increment_inspect_version(); } return super.set(key, value); @@ -117,7 +110,6 @@ export class ReactiveMap extends Map { set(this.#size, sources.size); set(s, /** @type {V} */ (UNINITIALIZED)); this.#increment_version(); - this.#increment_inspect_version(); } return super.delete(key); @@ -132,7 +124,6 @@ export class ReactiveMap extends Map { set(s, /** @type {V} */ (UNINITIALIZED)); } this.#increment_version(); - this.#increment_inspect_version(); } sources.clear(); @@ -167,6 +158,12 @@ export class ReactiveMap extends Map { } [INSPECT_SYMBOL]() { - get(this.#inspect_version); + // changes could either introduced by + // - modifying the value, or + // - add / remove entries to the map + for (const [, source] of this.#sources) { + get(source); + } + get(this.#size); } } diff --git a/packages/svelte/tests/runtime-runes/samples/inspect-reactivity/_config.js b/packages/svelte/tests/runtime-runes/samples/inspect-reactivity/_config.js index 3744392a909b..89dfc1c729f8 100644 --- a/packages/svelte/tests/runtime-runes/samples/inspect-reactivity/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/inspect-reactivity/_config.js @@ -20,7 +20,7 @@ export default test({ ]); log.length = 0; - b1.click(); // map.set('key', 'value') + flushSync(() => b1.click()); // map.set('key', 'value') in1.value = 'name'; in2.value = 'Svelte'; @@ -54,13 +54,13 @@ export default test({ ]); log.length = 0; - b2.click(); // set.add('name'); + flushSync(() => b2.click()); // set.add('name'); in1.value = 'Svelte'; in1.dispatchEvent(new window.Event('input', { bubbles: true })); - b2.click(); // set.add('Svelte'); + flushSync(() => b2.click()); // set.add('Svelte'); - b2.click(); // set.add('Svelte'); + flushSync(() => b2.click()); // set.add('Svelte'); assert.deepEqual(log, [ { label: 'set', type: 'update', values: ['name'] }, @@ -68,9 +68,9 @@ export default test({ ]); log.length = 0; - b3.click(); // date.minutes++ - b3.click(); // date.minutes++ - b3.click(); // date.minutes++ + flushSync(() => b3.click()); // date.minutes++ + flushSync(() => b3.click()); // date.minutes++ + flushSync(() => b3.click()); // date.minutes++ assert.deepEqual(log, [ { label: 'date', type: 'update', values: 1712966460000 }, From d38f89e74a3aba66c163823d1bda4a20fbceaa97 Mon Sep 17 00:00:00 2001 From: tanhauhau Date: Mon, 15 Apr 2024 08:55:59 +0800 Subject: [PATCH 3/5] feat: add inspect --- packages/svelte/src/reactivity/url.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/svelte/src/reactivity/url.js b/packages/svelte/src/reactivity/url.js index 3f11a4af37c7..6b14cbd7cc15 100644 --- a/packages/svelte/src/reactivity/url.js +++ b/packages/svelte/src/reactivity/url.js @@ -1,3 +1,4 @@ +import { INSPECT_SYMBOL } from '../internal/client/constants.js'; import { source, set } from '../internal/client/reactivity/sources.js'; import { get } from '../internal/client/runtime.js'; @@ -150,6 +151,10 @@ export class ReactiveURL extends URL { toJSON() { return this.href; } + + [INSPECT_SYMBOL]() { + this.href; + } } export class ReactiveURLSearchParams extends URLSearchParams { From a5319995688c58a9c0a4519f950d18c197cfb194 Mon Sep 17 00:00:00 2001 From: tanhauhau Date: Tue, 16 Apr 2024 09:02:53 +0800 Subject: [PATCH 4/5] feat: define inspect on dev mode only --- packages/svelte/src/reactivity/date.js | 11 +++++++---- packages/svelte/src/reactivity/map.js | 27 ++++++++++++++++---------- packages/svelte/src/reactivity/set.js | 9 ++++++--- 3 files changed, 30 insertions(+), 17 deletions(-) diff --git a/packages/svelte/src/reactivity/date.js b/packages/svelte/src/reactivity/date.js index 6ed6884278c7..600aa541867e 100644 --- a/packages/svelte/src/reactivity/date.js +++ b/packages/svelte/src/reactivity/date.js @@ -1,3 +1,4 @@ +import { DEV } from 'esm-env'; import { INSPECT_SYMBOL } from '../internal/client/constants.js'; import { source, set } from '../internal/client/reactivity/sources.js'; import { get } from '../internal/client/runtime.js'; @@ -89,6 +90,12 @@ export class ReactiveDate extends Date { return v; }; } + + if (DEV) { + proto[INSPECT_SYMBOL] = function () { + get(this.#raw_time); + }; + } } } @@ -100,8 +107,4 @@ export class ReactiveDate extends Date { super(...values); this.#init(); } - - [INSPECT_SYMBOL]() { - get(this.#raw_time); - } } diff --git a/packages/svelte/src/reactivity/map.js b/packages/svelte/src/reactivity/map.js index 1e4f0331fc20..60716c987e16 100644 --- a/packages/svelte/src/reactivity/map.js +++ b/packages/svelte/src/reactivity/map.js @@ -5,6 +5,8 @@ import { UNINITIALIZED } from '../constants.js'; import { map } from './utils.js'; import { INSPECT_SYMBOL } from '../internal/client/constants.js'; +var inited = false; + /** * @template K * @template V @@ -21,6 +23,21 @@ export class ReactiveMap extends Map { constructor(value) { super(); + if (DEV) { + if (!inited) { + inited = true; + ReactiveMap.prototype[INSPECT_SYMBOL] = function () { + // changes could either introduced by + // - modifying the value, or + // - add / remove entries to the map + for (const [, source] of this.#sources) { + get(source); + } + get(this.#size); + }; + } + } + // If the value is invalid then the native exception will fire here if (DEV) new Map(value); @@ -156,14 +173,4 @@ export class ReactiveMap extends Map { get size() { return get(this.#size); } - - [INSPECT_SYMBOL]() { - // changes could either introduced by - // - modifying the value, or - // - add / remove entries to the map - for (const [, source] of this.#sources) { - get(source); - } - get(this.#size); - } } diff --git a/packages/svelte/src/reactivity/set.js b/packages/svelte/src/reactivity/set.js index e7d6c3adb7cd..6565ef346907 100644 --- a/packages/svelte/src/reactivity/set.js +++ b/packages/svelte/src/reactivity/set.js @@ -67,6 +67,12 @@ export class ReactiveSet extends Set { return new ReactiveSet(set); }; } + + if (DEV) { + proto[INSPECT_SYMBOL] = function () { + get(this.#version); + }; + } } #increment_version() { @@ -151,7 +157,4 @@ export class ReactiveSet extends Set { get size() { return get(this.#size); } - [INSPECT_SYMBOL]() { - get(this.#version); - } } From 9d682319e677502e77c1a47f9f55208f4f99a331 Mon Sep 17 00:00:00 2001 From: tanhauhau Date: Wed, 17 Apr 2024 21:56:49 +0800 Subject: [PATCH 5/5] fix: lint error --- packages/svelte/src/reactivity/date.js | 1 + packages/svelte/src/reactivity/map.js | 1 + packages/svelte/src/reactivity/set.js | 1 + packages/svelte/src/reactivity/url.js | 26 ++++++++++++++++++++++---- packages/svelte/types/index.d.ts | 5 +---- 5 files changed, 26 insertions(+), 8 deletions(-) diff --git a/packages/svelte/src/reactivity/date.js b/packages/svelte/src/reactivity/date.js index 600aa541867e..302f58ab17e1 100644 --- a/packages/svelte/src/reactivity/date.js +++ b/packages/svelte/src/reactivity/date.js @@ -92,6 +92,7 @@ export class ReactiveDate extends Date { } if (DEV) { + // @ts-ignore proto[INSPECT_SYMBOL] = function () { get(this.#raw_time); }; diff --git a/packages/svelte/src/reactivity/map.js b/packages/svelte/src/reactivity/map.js index 60716c987e16..4e31bac90f21 100644 --- a/packages/svelte/src/reactivity/map.js +++ b/packages/svelte/src/reactivity/map.js @@ -26,6 +26,7 @@ export class ReactiveMap extends Map { if (DEV) { if (!inited) { inited = true; + // @ts-ignore ReactiveMap.prototype[INSPECT_SYMBOL] = function () { // changes could either introduced by // - modifying the value, or diff --git a/packages/svelte/src/reactivity/set.js b/packages/svelte/src/reactivity/set.js index 6565ef346907..fb23f631477a 100644 --- a/packages/svelte/src/reactivity/set.js +++ b/packages/svelte/src/reactivity/set.js @@ -69,6 +69,7 @@ export class ReactiveSet extends Set { } if (DEV) { + // @ts-ignore proto[INSPECT_SYMBOL] = function () { get(this.#version); }; diff --git a/packages/svelte/src/reactivity/url.js b/packages/svelte/src/reactivity/url.js index 6b14cbd7cc15..df0551fe06cc 100644 --- a/packages/svelte/src/reactivity/url.js +++ b/packages/svelte/src/reactivity/url.js @@ -1,8 +1,11 @@ +import { DEV } from 'esm-env'; import { INSPECT_SYMBOL } from '../internal/client/constants.js'; import { source, set } from '../internal/client/reactivity/sources.js'; import { get } from '../internal/client/runtime.js'; const REPLACE = Symbol(); +var inited_url = false; +var inited_search_params = false; export class ReactiveURL extends URL { #protocol = source(super.protocol); @@ -22,6 +25,14 @@ export class ReactiveURL extends URL { url = new URL(url, base); super(url); this.#searchParams[REPLACE](url.searchParams); + + if (DEV && !inited_url) { + inited_url = true; + // @ts-ignore + ReactiveURL.prototype[INSPECT_SYMBOL] = function () { + this.href; + }; + } } get hash() { @@ -151,10 +162,6 @@ export class ReactiveURL extends URL { toJSON() { return this.href; } - - [INSPECT_SYMBOL]() { - this.href; - } } export class ReactiveURLSearchParams extends URLSearchParams { @@ -164,6 +171,17 @@ export class ReactiveURLSearchParams extends URLSearchParams { set(this.#version, this.#version.v + 1); } + constructor() { + super(); + if (DEV && !inited_search_params) { + inited_search_params = true; + // @ts-ignore + ReactiveURLSearchParams.prototype[INSPECT_SYMBOL] = function () { + get(this.#version); + }; + } + } + /** * @param {URLSearchParams} params */ diff --git a/packages/svelte/types/index.d.ts b/packages/svelte/types/index.d.ts index d71e6aead429..8cdd515abe53 100644 --- a/packages/svelte/types/index.d.ts +++ b/packages/svelte/types/index.d.ts @@ -1972,7 +1972,6 @@ declare module 'svelte/reactivity' { class ReactiveDate extends Date { constructor(...values: any[]); - [INSPECT_SYMBOL](): void; #private; } class ReactiveSet extends Set { @@ -1988,7 +1987,6 @@ declare module 'svelte/reactivity' { values(): IterableIterator; entries(): IterableIterator<[T, T]>; [Symbol.iterator](): IterableIterator; - [INSPECT_SYMBOL](): void; #private; } class ReactiveMap extends Map { @@ -2008,7 +2006,6 @@ declare module 'svelte/reactivity' { values(): IterableIterator; entries(): IterableIterator<[K, V]>; [Symbol.iterator](): IterableIterator<[K, V]>; - [INSPECT_SYMBOL](): void; #private; } class ReactiveURL extends URL { @@ -2016,12 +2013,12 @@ declare module 'svelte/reactivity' { #private; } class ReactiveURLSearchParams extends URLSearchParams { + constructor(); [REPLACE](params: URLSearchParams): void; #private; } const REPLACE: unique symbol; - const INSPECT_SYMBOL: unique symbol; export { ReactiveDate as Date, ReactiveSet as Set, ReactiveMap as Map, ReactiveURL as URL, ReactiveURLSearchParams as URLSearchParams }; }