Skip to content

Commit 2117a15

Browse files
Use specific setter cache for builtin custom elements
1 parent c6f6205 commit 2117a15

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

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

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ export function set_custom_element_data(node, prop, value) {
238238
// Don't compute setters for custom elements while they aren't registered yet,
239239
// because during their upgrade/instantiation they might add more setters.
240240
// Instead, fall back to a simple "an object, then set as property" heuristic.
241-
(setters_cache.has(node.nodeName) ||
241+
(setters_cache.has(node.getAttribute('is') || node.nodeName) ||
242242
// customElements may not be available in browser extension contexts
243243
!customElements ||
244244
customElements.get(node.getAttribute('is') || node.tagName.toLowerCase())
@@ -546,9 +546,10 @@ var setters_cache = new Map();
546546

547547
/** @param {Element} element */
548548
function get_setters(element) {
549-
var setters = setters_cache.get(element.nodeName);
549+
var cache_key = element.getAttribute('is') || element.nodeName;
550+
var setters = setters_cache.get(cache_key);
550551
if (setters) return setters;
551-
setters_cache.set(element.nodeName, (setters = []));
552+
setters_cache.set(cache_key, (setters = []));
552553

553554
var descriptors;
554555
var proto = element; // In the case of custom elements there might be setters on the instance

0 commit comments

Comments
 (0)