From 174f3dc1353bcf831244e98eebdf882476ee98e6 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Tue, 12 Sep 2017 12:56:49 -0400 Subject: [PATCH] Avoid Array.from, Set, and spread elements when computing union. --- packages/allow-deny/allow-deny.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/allow-deny/allow-deny.js b/packages/allow-deny/allow-deny.js index 6fb235d00e..96684e35c3 100644 --- a/packages/allow-deny/allow-deny.js +++ b/packages/allow-deny/allow-deny.js @@ -210,9 +210,11 @@ CollectionPrototype._updateFetch = function (fields) { if (!self._validators.fetchAllFields) { if (fields) { - self._validators.fetch = - // union - Array.from(new Set([...self._validators.fetch, ...fields])); + const union = Object.create(null); + const add = names => names && names.forEach(name => union[name] = 1); + add(self._validators.fetch); + add(fields); + self._validators.fetch = Object.keys(union); } else { self._validators.fetchAllFields = true; // clear fetch just to make sure we don't accidentally read it