It's no longer a range because it:
1. Makes no sense for it to be a range
2. Makes for simpler scripts since returning a JS array is a hassle with Graal
Simple solution for avoiding concurrent access
of the same evaluated script, but I would be surprised
if performance is not affected for the worse.
The same Invocable is used for all instances of an event,
so more active instances means higher contention of the single Invocable.
Hopefully the number of instances required for it to be noticeably slow
is high enough that this is not an issue.
Might be a bit overkill to force synchronization
for every single method invocation when the only
scheduling done in reactor scripts are:
- 5511000 (summon Targa)
- 5511001 (summon Scarlion)
GraalJSScriptEngine implements Invocable, which is why casting to it works.
However, this is just a quick and ugly fix to make it compile.
A better solution would be to cast it once, immediately after `eval`,
and from then on only handle it as Invocable.
Scripts still need to be fixed. They are still using Rhino and Nashorn-specific
ways of importing packages.
Usages of "importPackage" and "Packages" need to be replaced with
the Graal specific "Java.type".