The JavaScript extensions, besides requiring a rewrite from the old C model, for a long time were the root cause of performance issues given how much GNOME has outsourced into extensions from what used to be core features in the GNOME 1.x and 2.x days.
Here is an old example,
https://feaneron.com/2018/04/20/the-infamous-gnome-shell-mem...