[RFC] Use `accumulateInto` to save even more allocation

Trying to make the event a bit more performant for events.

Feel free to reject this because the API inevitably isn't great. It's good for perf though, and since we're only using `accumulate` in very restrained places, I think we're fine.

`accumulateInto` is `accumulate` that mutates more and allocates less. I kept `accumulate` in case we want that in the future.
Merge pull request #2054 from chenglou/accum

[RFC] Use `accumulateInto` to save even more allocation