Let's talk JS Symbols for a sec.
If you define a Symbol property on an object, it's enumerable, by default.
Except that when you try to enumerate it... you can't. It won't show up. Because EnumerateObjectProperties only iterates over String properties. http://www.ecma-international.org/ecma-262/7.0/index.html#sec-enumerate-object-properties
The exception here appears to be Object.assign, which will copy any enumerable property.
I don't understand the logic here. Why does it work this way?