Remove usage of globalThis in generated code #504
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This removes the usage of
globalThis
in generated code by instead using an export of globalNumber
constants.This is done so that we can safely use these global constants when generating code and be assured we're using the correct values. We cannot use
globalThis
since we support ES2017 andglobalThis
was introduced in ES2020. We also don't want to explicitly generate code using, for example,Number.NaN
, since this could clash with a message name ofNumber
.Instead we can export them in a local
proto-double.js
file since this will be in a different scope as the generated code and we are guaranteed to use the intended global values.Note that this complements #488 to remove usage of
globalThis
in the repo.