feat: support ScriptEngineBigInteger

This commit is contained in:
Wans
2025-08-28 10:18:20 +08:00
committed by ReaJason
parent 1c28a5d4ba
commit 8f2872e542
12 changed files with 94 additions and 30 deletions
@@ -0,0 +1,10 @@
var className = "{{className}}";
var bigIntegerStr = "{{bigIntegerStr}}";
var bytecode = new java.math.BigInteger(bigIntegerStr, 36).toByteArray();
var clsString = java.lang.Class.forName("java.lang.String");
var clsByteArray = (new java.lang.String("a").getBytes().getClass());
var clsInt = java.lang.Integer.TYPE;
var defineClass = java.lang.Class.forName("java.lang.ClassLoader").getDeclaredMethod("defineClass", [clsString, clsByteArray, clsInt, clsInt]);
defineClass.setAccessible(true);
var clazz = defineClass.invoke(java.lang.Thread.currentThread().getContextClassLoader(), className, bytecode, new java.lang.Integer(0), new java.lang.Integer(bytecode.length));
clazz.newInstance();