Fix problem with let using attributes of {} when they should be null #1030
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.
The current
disassembleToken()andassembleToken()methods produce a new token whose attributes are{}when the original hadnullattributes. This has implications for some tokens where the difference between these are important, as in themathchar7function atMathJax-src/ts/input/tex/ParseMethods.ts
Lines 156 to 165 in ae389de
where line 157 provides a default attribute list when
math.attributesisnull(but not if it is an empty object).This leads to the loss of the default attributes when a new control sequence is
\letequal to one that usesmathchar7, as inwhere the result of
\percentwill be in italics, while\%will not.This PR resolves the issue by actually eliminating
disassembleToken()andassembleToken()and just using the original token directly in themethodat new line 137 (via the same closure that preservesmap).