Thats the the problem they are supposed to be Reflection APIs but implemented on the base classe's prototype wich means every object will have them and that any code generator implmentor for say a C# compiler should try to work out the differences between JavaScript builtins and C# built-ins ...
Besides any intent to inherit from Object would be explicit as in
class Base { ToString() { return `[[${this[Symbol.constructor].name}]]`; } }
when object's prototype is needed
class Normal extends Object { ... }
i don't know but ever since Object.create was introduced i use it in my personal code to create clean object with no prototype, i use it instead of literals, maybe its a psychological relief for a developer to know that his objects and classes don't have unwanted useless methods and properties