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; }