<html>
<head>
<script>
if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
}
</script>
<script src="resources/parse-error-external-script-in-eval.js"></script>
<script>
if (window.testRunner) {
    testRunner.notifyDone();
}
</script>
</head>
<body>
This tests that a line number and error message is printed for a parse error in a separate source file using eval().
</body>
</html>
