split up `parseStatement()`

It was purely interpreted by the V8 engine. Splitting it up allows the individual pieces to be optimized, so less is interpreted.