pub(crate) fn is_symbol_like_key(k: &str) -> boolExpand description
この処理系には実の Symbol 型が無く、Symbol.iterator 等の well-known symbol は
"Symbol(Symbol.iterator)" という見た目のリテラル文字列で代用されている
(obj[Symbol.iterator] = fn は内部的に obj.props["Symbol(Symbol.iterator)"] = fn
という通常の文字列キー代入に化ける)。仕様上 Symbol キーは Object.keys/values/
entries/for...in/JSON.stringify/スプレッド構文等のあらゆる「文字列キー列挙」から
除外されるべきだが、これらの区別が無かったため、class Range { [Symbol.iterator](){} }
のようなカスタムイテラブルの Symbol.iterator メソッド自体が列挙結果に漏れて見える
バグだった(Object.assign/Reflect.ownKeys は仕様上 Symbol キーも対象のため
意図的にこのフィルタを適用しない)。