in src/main/java/org/apache/sling/scripting/sightly/js/impl/JsEnvironment.java [110:139]
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 {
closeQuietly(reader);
}
});
}