When a compilation error occurs, fail any of the tests that are based on...

... that compilation.

If you make a change to the compiler that breaks compilation of a test case, and then run tests that are based on the result of compiled code, the compilation fails quietly and leaves the previously compiled result alone. As a result there's a false negative.

This change records which scripts fail to compile, and any tests that are based on that compilation will fail before being run.