Skip to content

Commit 4cdc371

Browse files
trueadmRich-Harris
andauthored
chore: tweak Map/Set for better inspect output (#12013)
* chore: tweak Map/Set for better inspect output * chore: tweak Map/Set for better inspect output * chore: tweak Map/Set for better inspect output * chore: tweak Map/Set for better inspect output * chore: tweak Map/Set for better inspect output * changeset --------- Co-authored-by: Rich Harris <[email protected]>
1 parent 50fd94f commit 4cdc371

File tree

3 files changed

+26
-19
lines changed

3 files changed

+26
-19
lines changed

.changeset/eleven-hounds-pump.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"svelte": patch
3+
---
4+
5+
chore: clear `Map`/`Set` before triggering `$inspect` callbacks

packages/svelte/src/reactivity/map.js

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -122,17 +122,18 @@ export class ReactiveMap extends Map {
122122
}
123123

124124
clear() {
125-
var sources = this.#sources;
126-
127-
if (super.size !== 0) {
128-
set(this.#size, 0);
129-
for (var s of sources.values()) {
130-
set(s, -1);
131-
}
132-
increment(this.#version);
133-
sources.clear();
125+
if (super.size === 0) {
126+
return;
134127
}
128+
// Clear first, so we get nice console.log outputs with $inspect
135129
super.clear();
130+
var sources = this.#sources;
131+
set(this.#size, 0);
132+
for (var s of sources.values()) {
133+
set(s, -1);
134+
}
135+
increment(this.#version);
136+
sources.clear();
136137
}
137138

138139
#read_all() {

packages/svelte/src/reactivity/set.js

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -117,19 +117,20 @@ export class ReactiveSet extends Set {
117117
}
118118

119119
clear() {
120-
if (super.size !== 0) {
121-
var sources = this.#sources;
122-
123-
for (var s of sources.values()) {
124-
set(s, false);
125-
}
120+
if (super.size === 0) {
121+
return;
122+
}
123+
// Clear first, so we get nice console.log outputs with $inspect
124+
super.clear();
125+
var sources = this.#sources;
126126

127-
sources.clear();
128-
set(this.#size, 0);
129-
increment(this.#version);
127+
for (var s of sources.values()) {
128+
set(s, false);
130129
}
131130

132-
super.clear();
131+
sources.clear();
132+
set(this.#size, 0);
133+
increment(this.#version);
133134
}
134135

135136
keys() {

0 commit comments

Comments
 (0)