I noticed that `javax.script.ScriptEngineManager` `getEngineByXxx` methods had a lot of code duplication among themselves, and even within each method. I refactored them into a modern unified implementation. While there I also took the opportunity to introduce `Objects.requireNonNull` in place of null checks followed by NPE throws, mark private fields final where possible, use lambdas for `doPrivileged` block, use `List.of` and `List.copyOf` where possible, and generally sanitize/deduplicate.
------------- Commit messages: - Tidy - require non null in SimpleBindings - Simplify SimpleScriptContext.scopes - Mark fields final where possible - Deduplicate registerEngineXxx methods - Misc tidying - Deduplicate exception reporting - Lambdify - Mark fields as final; eliminate now unnecessary init() method. - Deduplicate engine creation and setup code - ... and 4 more: https://git.openjdk.java.net/jdk/compare/a209ed01...f378f350 Changes: https://git.openjdk.java.net/jdk/pull/3229/files Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=3229&range=00 Issue: https://bugs.openjdk.java.net/browse/JDK-8264326 Stats: 225 lines in 5 files changed: 38 ins; 142 del; 45 mod Patch: https://git.openjdk.java.net/jdk/pull/3229.diff Fetch: git fetch https://git.openjdk.java.net/jdk pull/3229/head:pull/3229 PR: https://git.openjdk.java.net/jdk/pull/3229