Per conversation in #831, these commits make breaking changes to operator spreading.
Prior to this commit, unary operator spreading happened implicitly, leading to surprises like typeof  != typeof  (== [typeof 0]). With this commit, a splat is required prior to the array being spread over: typeof ... == [typeof 0]. Implicit operator spreading is no longer handled; typeof  is just typeof .
That looks good! It might take me a few days before I can actually review it though.
I might also want to add a few more tests. It's a pretty big change.
When merged, I'll also create an issue to track the docs state about this.