This makes toml.parse about 2x faster for typical inputs.
Computing line() and column() for every node is expensive, and the information is only needed for error messages. offset() is much cheaper, and it's easy to compute line/column from the offset when we need them.
I'm leaving all the uses of line/column in toml.pegjs for now, because removing them will conflict with pr #44 . I'll fix it up after that one is resolved (either yes or no).
This makes
toml.parse
about 2x faster for typical inputs.Computing
line()
andcolumn()
for every node is expensive, and the information is only needed for error messages.offset()
is much cheaper, and it's easy to compute line/column from the offset when we need them.I'm leaving all the uses of line/column in toml.pegjs for now, because removing them will conflict with pr #44 . I'll fix it up after that one is resolved (either yes or no).