in src/main/java/org/apache/sling/scripting/sightly/js/impl/JsEnvironment.java [108:135]
private Task scriptTask(final ScriptNameAwareReader reader, final ScriptContext scriptContext, final UnaryCallback callback) {
return new Task(() -> {
try {
Object result;
if (jsEngine instanceof Compilable) {
result = ((Compilable) jsEngine).compile(reader).eval(scriptContext);
} else {
result = jsEngine.eval(reader, scriptContext);
}
if (result == null) {
CommonJsModule commonJsModule =
(CommonJsModule) scriptContext.getBindings(ScriptContext.ENGINE_SCOPE).get(Variables.MODULE);
if (commonJsModule != null && commonJsModule.isModified()) {
result = commonJsModule.getExports();
}
}
if (result instanceof AsyncContainer) {
((AsyncContainer) result).addListener(callback);
} else {
callback.invoke(result);
}
} catch (ScriptException e) {
throw new SightlyException(e);
} finally {
IOUtils.closeQuietly(reader);
}
});
}