Breaking change in 3.0.0 is not just "fixed API spec for parseTree. Can return undefine for empty input.".
But also findNodeAtLocation() type is fixed: it can return undefined.
"Can return undefine for empty input" is incomplete. It will return undefined in those cases and probably even more, too:
'' empty string
' ' blank
' ' tab
'// test' comment only
'/* test */' comment only
'+'
'-'
'}'
'} {}'
']'
':'
','
"'foo'"
"abc"