And what would be different if you removed the arguments and the null assignments from the `process_math` function entirely?

My question is this:

Why doesn't `process_math` just take `blocks` and return `blocks`?  `start`, `end`, and `last` have no effect inside process_math, and process_math has no effect on their value afterwards (they are just `null` and ignored).