diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/editors/panes/properties.js b/packages/node_modules/@node-red/editor-client/src/js/ui/editors/panes/properties.js index 39aa63ed1..84505fb91 100644 --- a/packages/node_modules/@node-red/editor-client/src/js/ui/editors/panes/properties.js +++ b/packages/node_modules/@node-red/editor-client/src/js/ui/editors/panes/properties.js @@ -107,7 +107,7 @@ newValue = ""; } } - if (!JSON.stringify(node[d]) === JSON.stringify(newValue)) { + if (!isEqual(node[d], newValue)) { if (node._def.defaults[d].type) { // Change to a related config node var configNode = RED.nodes.node(node[d]); @@ -138,6 +138,22 @@ } } }); + /** + * Compares `v1` with `v2` for equality + * @param {*} v1 variable 1 + * @param {*} v2 variable 2 + * @returns {boolean} true if variable 1 equals variable 2, otherwise false + */ + function isEqual(v1, v2) { + try { + if(v1 === v2) { + return true; + } + return JSON.stringify(v1) === JSON.stringify(v2); + } catch (err) { + return false; + } + } /** * Update the node credentials from the edit form