Line numbers are missing in many EvalErrors, because
too many places call the convenience constructor that
skips the Node that caused the error.
This makes it really hard to debug scripts. Ideally,
the convenience constructors should be removed, and
every caller should be made to specify an explicit
Node, or null if one is truly not available.
The other problem is that there are many places where
the source node is not passed down to inner routines,
so that even though an error is taking place in the
context of a node, that node is not present in the
exception. This is especially true of TargetExceptions
caused by null pointers in the script itself (calling
nullobj.someMember(), for instance).
Log in to post a comment.