Avoid copying non-enumerable and/or symbol keys in cloneDeep. (#4052)
Avoid copying non-enumerable and/or symbol keys in cloneDeep. (#4052)

https://github.com/apollographql/apollo-client/pull/4039#issuecomment-432757104

The previous fclone implementation also did not preserve non-enumerable
or non-string keys, so this is not a breaking change.

The Date case was also a bit overzealous, since there are no actual use cases
in this codebase that require Date objects to be duplicated, rather than simply
passing them through.

If we're missing any cases that anyone cares about, we can easily expand the
switch-case coverage in the future.
apollographql/apollo-client,apollographql/apollo-client,apollostack/apollo-client,apollostack/apollo-client,apollostack/apollo-client