Skip to content

Commit 8c1d439

Browse files
authored
fix: remove buggy validate_dynamic_component check (#12960)
closes #12857
1 parent 01d32e5 commit 8c1d439

File tree

9 files changed

+7
-95
lines changed

9 files changed

+7
-95
lines changed

.changeset/young-peaches-agree.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+
fix: remove buggy `validate_dynamic_component` check

packages/svelte/src/compiler/phases/3-transform/client/visitors/shared/component.js

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -348,14 +348,7 @@ export function build_component(node, component_name, context, anchor = context.
348348
b.thunk(/** @type {Expression} */ (context.visit(node.expression))),
349349
b.arrow(
350350
[b.id('$$anchor'), b.id(component_name)],
351-
b.block([
352-
...binding_initializers,
353-
b.stmt(
354-
dev
355-
? b.call('$.validate_dynamic_component', b.thunk(prev(b.id('$$anchor'))))
356-
: prev(b.id('$$anchor'))
357-
)
358-
])
351+
b.block([...binding_initializers, b.stmt(prev(b.id('$$anchor')))])
359352
)
360353
);
361354
};

packages/svelte/src/internal/client/index.js

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -144,12 +144,7 @@ export {
144144
setContext,
145145
hasContext
146146
} from './runtime.js';
147-
export {
148-
validate_binding,
149-
validate_dynamic_component,
150-
validate_each_keys,
151-
validate_prop_bindings
152-
} from './validate.js';
147+
export { validate_binding, validate_each_keys, validate_prop_bindings } from './validate.js';
153148
export { raf } from './timing.js';
154149
export { proxy } from './proxy.js';
155150
export { create_custom_element } from './dom/elements/custom-element.js';

packages/svelte/src/internal/client/validate.js

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -14,31 +14,6 @@ function is_void(tag) {
1414
return void_element_names.test(tag) || tag.toLowerCase() === '!doctype';
1515
}
1616

17-
/**
18-
* @template Component
19-
* @param {() => Component} component_fn
20-
* @returns {Component}
21-
*/
22-
export function validate_dynamic_component(component_fn) {
23-
try {
24-
const instance = component_fn();
25-
26-
if (instance !== undefined && typeof instance !== 'object') {
27-
e.svelte_component_invalid_this_value();
28-
}
29-
30-
return instance;
31-
} catch (err) {
32-
const { message } = /** @type {Error} */ (err);
33-
34-
if (typeof message === 'string' && message.indexOf('is not a function') !== -1) {
35-
e.svelte_component_invalid_this_value();
36-
}
37-
38-
throw err;
39-
}
40-
}
41-
4217
/**
4318
* @param {() => any} collection
4419
* @param {(item: any, index: number) => string} key_fn

packages/svelte/tests/runtime-legacy/samples/component-not-constructor-dev/_config.js

Lines changed: 0 additions & 12 deletions
This file was deleted.

packages/svelte/tests/runtime-legacy/samples/component-not-constructor-dev/main.svelte

Lines changed: 0 additions & 5 deletions
This file was deleted.

packages/svelte/tests/runtime-legacy/samples/component-not-constructor2-dev/Sub.svelte

Lines changed: 0 additions & 1 deletion
This file was deleted.

packages/svelte/tests/runtime-legacy/samples/component-not-constructor2-dev/_config.js

Lines changed: 0 additions & 24 deletions
This file was deleted.

packages/svelte/tests/runtime-legacy/samples/component-not-constructor2-dev/main.svelte

Lines changed: 0 additions & 14 deletions
This file was deleted.

0 commit comments

Comments
 (0)