From 101058c161a2493e7c56138360bd3f1bb7d9070b Mon Sep 17 00:00:00 2001 From: Chris Peddecord Date: Mon, 30 Jan 2017 09:41:23 -0800 Subject: [PATCH] changing getIterable to use iterable methods using various iterable `is` methods to determine type of iterable vs. using an equality check. --- src/serialize.js | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/src/serialize.js b/src/serialize.js index f23f5b2..6659b07 100644 --- a/src/serialize.js +++ b/src/serialize.js @@ -134,28 +134,31 @@ function replaceRecord(rec, replaceChild) { } function getIterableType(iterable) { - switch (iterable.constructor) { - case immutable.List: - return 'List' + if (immutable.List.isList(iterable)) { + return 'List' + } - case immutable.Set: - return 'Set' + if (immutable.Stack.isStack(iterable)) { + return 'Stack' + } - case immutable.OrderedSet: + if (immutable.Set.isSet(iterable)) { + if (immutable.OrderedSet.isOrderedSet(iterable)) { return 'OrderedSet' + } - case immutable.Stack: - return 'Stack' - - case immutable.Map: - return 'Map' + return 'Set' + } - case immutable.OrderedMap: + if (immutable.Map.isMap(iterable)) { + if (immutable.OrderedMap.isOrderedMap(iterable)) { return 'OrderedMap' + } - default: - return undefined + return 'Map' } + + return undefined; }