From bdff4c0672504bad43a219397677604d2ba48ea6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Luba=C5=84ski?= Date: Wed, 5 May 2021 13:44:17 +0200 Subject: [PATCH] fix(define): keep lastValue for HMR update --- src/define.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/define.js b/src/define.js index 5ed3d553..3f139cbd 100644 --- a/src/define.js +++ b/src/define.js @@ -96,14 +96,18 @@ function update(Hybrid, lastHybrids) { deferred.then(() => { walkInShadow(document.body, node => { if (updateQueue.has(node.constructor)) { - const hybrids = updateQueue.get(node.constructor); + const prevHybrids = updateQueue.get(node.constructor); + const hybrids = node.constructor.hybrids; node.disconnectedCallback(); - Object.keys(node.constructor.hybrids).forEach(key => { + Object.keys(hybrids).forEach(key => { + const type = typeof hybrids[key]; cache.invalidate( node, key, - node.constructor.hybrids[key] !== hybrids[key], + type !== "object" && + type !== "function" && + hybrids[key] !== prevHybrids[key], ); });