Skip to content

Commit 39d65a4

Browse files
committed
fix: correctly set custom element props
WIP
1 parent aaea254 commit 39d65a4

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

packages/svelte/src/internal/client/dom/elements/attributes.js

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -323,11 +323,21 @@ var setters_cache = new Map();
323323

324324
/** @param {Element} element */
325325
function get_setters(element) {
326-
var setters = setters_cache.get(element.nodeName);
326+
var name = element.nodeName;
327+
var setters = setters_cache.get(name);
328+
327329
if (setters) return setters;
328-
setters_cache.set(element.nodeName, (setters = []));
330+
331+
setters = [];
332+
333+
// Don't cache the result for custom elements while they aren't connected yet,
334+
// because during their upgrade they might add more setters
335+
if (!name.includes('-') || element.isConnected) {
336+
setters_cache.set(name, setters);
337+
}
338+
329339
var descriptors;
330-
var proto = get_prototype_of(element);
340+
var proto = element;
331341
var element_proto = Element.prototype;
332342

333343
// Stop at Element, from there on there's only unnecessary setters we're not interested in

0 commit comments

Comments
 (0)