Yes, `parseFloat()` is the wrong tool here.  `parseFloat('3.10.0')` returns 3.1, while `parseFloat('3.4.0')` returns 3.4.  Alas 3.1 (thus version 3.10.0) is less than 3.4 (version 3.4.0) which is the reverse logic that we want.  (We want version 3.10.0 to be _greater than_ 3.4.0.)  Try it yourself in a little stand-alone script.