The reason libraries call polyfills directly is because it's impolite for a library to change global scope underneath you. Usually it's the top-level application's author who chooses and configures polyfills. Now one may reasonably ask, why doesn't the library just call Object.defineProperties directly, and tell the user to install the appropriate polyfill? I'm going to guess that a library that Just Works after an n…
But why are we polyfilling a function that exists in every version of node? When did this code not just work after installation that it required a polyfill?
It wasn’t and isn’t uncommon to pull down a dependency from npm and expect it to work in multiple runtimes.