Skip to content

Commit 8cbe619

Browse files
committed
Revert "return instance _and_ props in runes mode, move flushSync into shared code, don't set accessors in runes mode"
This reverts commit a47827e.
1 parent e7ba88d commit 8cbe619

File tree

10 files changed

+41
-39
lines changed

10 files changed

+41
-39
lines changed

packages/svelte/tests/runtime-legacy/shared.ts

Lines changed: 6 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ async function common_setup(cwd: string, runes: boolean | undefined, config: Run
131131
generate: 'client',
132132
...config.compileOptions,
133133
immutable: config.immutable,
134-
accessors: 'accessors' in config ? config.accessors : runes ? undefined : true,
134+
accessors: 'accessors' in config ? config.accessors : true,
135135
runes
136136
};
137137

@@ -292,35 +292,20 @@ async function run_test_variant(
292292
};
293293

294294
let instance: any;
295-
let component: any;
295+
let props: any;
296296

297297
if (runes) {
298-
const props: any = proxy({ ...(config.props || {}) });
299-
const render = variant === 'hydrate' ? hydrate : mount;
298+
props = proxy({ ...(config.props || {}) });
300299

300+
const render = variant === 'hydrate' ? hydrate : mount;
301301
instance = render(mod.default, {
302302
target,
303303
props,
304304
intro: config.intro,
305305
recover: config.recover ?? false
306306
});
307-
308-
component = new Proxy(instance, {
309-
get(target, key) {
310-
if (key in target) return target[key];
311-
return props[key];
312-
},
313-
set(target, key, value) {
314-
if (key in target) {
315-
target[key] = value;
316-
} else {
317-
flushSync(() => (props[key] = value));
318-
}
319-
return true;
320-
}
321-
});
322307
} else {
323-
instance = component = createClassComponent({
308+
instance = createClassComponent({
324309
component: mod.default,
325310
props: config.props,
326311
target,
@@ -359,7 +344,7 @@ async function run_test_variant(
359344
htmlEqualWithOptions: assert_html_equal_with_options
360345
},
361346
variant,
362-
component,
347+
component: runes ? props : instance,
363348
mod,
364349
target,
365350
snapshot,

packages/svelte/tests/runtime-runes/samples/lifecycle-render-order-for-children-2/_config.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { flushSync } from 'svelte';
12
import { test } from '../../test';
23

34
export default test({
@@ -27,7 +28,7 @@ export default test({
2728

2829
logs.length = 0;
2930

30-
component.n += 1;
31+
flushSync(() => (component.n += 1));
3132

3233
assert.deepEqual(logs, [
3334
'parent: $effect.pre 1',

packages/svelte/tests/runtime-runes/samples/lifecycle-render-order-for-children-3/_config.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { flushSync } from 'svelte';
12
import { test } from '../../test';
23

34
export default test({
@@ -22,7 +23,7 @@ export default test({
2223

2324
logs.length = 0;
2425

25-
component.n += 1;
26+
flushSync(() => (component.n += 1));
2627

2728
assert.deepEqual(logs, [
2829
'parent: render 1',

packages/svelte/tests/runtime-runes/samples/lifecycle-render-order-for-children-4/_config.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { flushSync } from 'svelte';
12
import { test } from '../../test';
23

34
export default test({
@@ -26,7 +27,8 @@ export default test({
2627
]);
2728

2829
logs.length = 0;
29-
component.n += 1;
30+
31+
flushSync(() => (component.n += 1));
3032

3133
assert.deepEqual(logs, [
3234
'parent: $effect.pre 1',

packages/svelte/tests/runtime-runes/samples/lifecycle-render-order-for-children-5/_config.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { flushSync } from 'svelte';
12
import { test } from '../../test';
23

34
export default test({
@@ -9,7 +10,7 @@ export default test({
910
assert.deepEqual(logs, ['$effect.pre 0', 'another $effect.pre 1', 'render n0', 'render i1']);
1011

1112
logs.length = 0;
12-
component.n += 1;
13+
flushSync(() => (component.n += 1));
1314

1415
assert.deepEqual(logs, ['$effect.pre 1', 'another $effect.pre 2', 'render n1', 'render i2']);
1516
}

packages/svelte/tests/runtime-runes/samples/lifecycle-render-order-for-children/_config.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { flushSync } from 'svelte';
12
import { test } from '../../test';
23

34
export default test({
@@ -22,7 +23,8 @@ export default test({
2223
]);
2324

2425
logs.length = 0;
25-
component.n += 1;
26+
27+
flushSync(() => (component.n += 1));
2628

2729
assert.deepEqual(logs, [
2830
'parent: $effect.pre 1',

packages/svelte/tests/runtime-runes/samples/props-default-value-lazy-accessors/_config.js

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { flushSync } from '../../../../src/index-client.js';
12
import { test } from '../../test';
23

34
// Tests that default values only fire lazily when the prop is undefined, and every time
@@ -12,20 +13,24 @@ export default test({
1213
html: `<p>props: 0 0 0 0 1 1 1 1</p><p>log: nested.fallback_value,fallback_fn`,
1314

1415
async test({ assert, target, component }) {
15-
component.p0 = undefined;
16-
component.p1 = undefined;
17-
component.p2 = undefined;
18-
component.p3 = undefined;
16+
flushSync(() => {
17+
component.p0 = undefined;
18+
component.p1 = undefined;
19+
component.p2 = undefined;
20+
component.p3 = undefined;
21+
});
1922

2023
assert.htmlEqual(
2124
target.innerHTML,
2225
`<p>props: 1 1 1 1 1 1 1 1</p><p>log: nested.fallback_value,fallback_fn,nested.fallback_value,fallback_fn`
2326
);
2427

25-
component.p4 = undefined;
26-
component.p5 = undefined;
27-
component.p6 = undefined;
28-
component.p7 = undefined;
28+
flushSync(() => {
29+
component.p4 = undefined;
30+
component.p5 = undefined;
31+
component.p6 = undefined;
32+
component.p7 = undefined;
33+
});
2934

3035
assert.htmlEqual(
3136
target.innerHTML,

packages/svelte/tests/runtime-runes/samples/props-quoted/_config.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { flushSync } from 'svelte';
12
import { test } from '../../test';
23

34
export default test({
@@ -8,7 +9,7 @@ export default test({
89
html: `hello`,
910

1011
async test({ assert, target, component }) {
11-
component['kebab-case'] = 'goodbye';
12+
flushSync(() => (component['kebab-case'] = 'goodbye'));
1213
assert.htmlEqual(target.innerHTML, `goodbye`);
1314
}
1415
});

packages/svelte/tests/runtime-runes/samples/props/_config.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { flushSync } from 'svelte';
12
import { test } from '../../test';
23

34
export default test({
@@ -13,10 +14,10 @@ export default test({
1314
html: `x 1 2 3 z`,
1415

1516
async test({ assert, target, component }) {
16-
component.foo = 'y';
17+
flushSync(() => (component.foo = 'y'));
1718
assert.htmlEqual(target.innerHTML, `y 1 2 3 z`);
1819

19-
component.bar = 'w';
20+
flushSync(() => (component.bar = 'w'));
2021
assert.htmlEqual(target.innerHTML, `y 1 2 3 w`);
2122
}
2223
});
Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
1+
import { flushSync } from '../../../../src/index-client.js';
12
import { test } from '../../test';
23

34
export default test({
45
test({ assert, component, target }) {
56
const div = /** @type {HTMLDivElement & { foo?: number }} */ (target.querySelector('div'));
67

78
assert.equal(div.foo, undefined);
8-
component.foo = 2;
9-
component.visible = false;
9+
flushSync(() => {
10+
component.foo = 2;
11+
component.visible = false;
12+
});
1013
assert.equal(div.foo, 2);
1114
}
1215
});

0 commit comments

Comments
 (0)