@Override public Task awaitTask() throws InterruptedException { for (; ; ) { try { com.github.anba.es6draft.ast.Script parsedScript = read(realm, line); if (parsedScript == null) { return null; } if (parsedScript.getStatements().isEmpty()) { continue; } return new EvalPrintTask(realm, parsedScript); } catch (RuntimeException e) { return new ThrowExceptionTask<>(e); } catch (Error e) { return new ThrowErrorTask<>(e); } } }