slightly better error (tho theres room for improvement) and unit testing for it

The JS_Parse_Error object's stack trace gets the appropriate message, and has the correct name. Unfortunately, the stack trace still doesn't include the top-level calling part of the stack, and still isn't an instance of `Error` - almost definitely because of the user of `runInContext` in tools/node.js