Previously, only one char got checked for escapes when parsing strings. This meant that strings such as "\" never got terminated, leading to incorrect parsing.
This commit adds a check which calculates the number of escapes pre-string ending to determine wherever the last escape is itself escaped or not.
This was prompted by issue #345, I also added a test case for it.
One important note is that I am unsure how much that impacts performance. The for loop is only accessed if the string has an escape before it, so it should be a fairly rare path.
Previously, only one char got checked for escapes when parsing strings. This meant that strings such as "\" never got terminated, leading to incorrect parsing.
This commit adds a check which calculates the number of escapes pre-string ending to determine wherever the last escape is itself escaped or not.
This was prompted by issue #345, I also added a test case for it.
One important note is that I am unsure how much that impacts performance. The for loop is only accessed if the string has an escape before it, so it should be a fairly rare path.