fixes #497: do not throw plain strings for failed pattern matches

Fixes #497. I wasn't sure about how to confirm the fix using the test, but the test at least exercises the modified part of the program. Tested manually and it works.

Side note: `JSNew` only takes one `JS` for the callee, but no argument list. Thankfully, `new` is unnecessary for constructing instances of native constructors. But we should look into fixing that.