repl: fix autocomplete when useGlobal is false
This fixes two issues in the REPL when it is started with a new context
(useGlobal option set to false
):
- The
primordials
object does not contain all builtins, so the filtering based on property names fromprimordials
was wrong. - The autocompleter did not take builtin names into account because they are not properties of the context object.
A list of all global builtin names is created lazily when needed. It is used for filtering for the copy and for adding those names to the autocompleter list.
Fixes: https://github.com/nodejs/node/issues/30792
I did not add a new test because this will be covered when https://github.com/nodejs/node/pull/30740 has landed.