I assume this won't parse if you remove the `trim` here: `LINESTRING (30 10, 10 30, 40 40)` (because there are spaces after the commas).  If instead of splitting on `','` in `parseLineString_` we split on `/\s*,\s*/` then it should work in this case.  To make MultiPoint work with spaces (e.g. `MULTIPOINT (( 10 40 ), ( 40 30 ))` or `MULTIPOINT (10 40, 40 30)`) I assume you'd have to update `trimParens` to consume inner spaces in addition to splitting on `/\s*,\s*/`.

I'm only glancing through the code, but I'm guessing similar changes would have to be made throughout if we wanted to remove the `trim` calls.  Might be interesting to compare performance in both.  Might also be a colossal waste of time.