From fa069e4e1f4fc730fd29ab9699240480d84c84d3 Mon Sep 17 00:00:00 2001 From: hmhealey Date: Mon, 8 Feb 2016 13:35:38 -0500 Subject: Added support for ES6 Maps to Utils.areObjectsEqual --- web/react/utils/utils.jsx | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'web/react') diff --git a/web/react/utils/utils.jsx b/web/react/utils/utils.jsx index 4beec8d64..376053792 100644 --- a/web/react/utils/utils.jsx +++ b/web/react/utils/utils.jsx @@ -392,6 +392,10 @@ export function areObjectsEqual(x, y) { return x.toString() === y.toString(); } + if (x instanceof Map && y instanceof Map) { + return areMapsEqual(x, y); + } + // At last checking prototypes as good a we can if (!(x instanceof Object && y instanceof Object)) { return false; @@ -456,6 +460,24 @@ export function areObjectsEqual(x, y) { return true; } +export function areMapsEqual(a, b) { + if (a.size !== b.size) { + return false; + } + + for (const [key, value] of a) { + if (!b.has(key)) { + return false; + } + + if (!areObjectsEqual(value, b.get(key))) { + return false; + } + } + + return true; +} + export function replaceHtmlEntities(text) { var tagsToReplace = { '&': '&', -- cgit v1.2.3-1-g7c22