persistable sclass ResolvableLASClass is IResolvableClass { transient ILASClassLoader lasClassLoader; LASClassDef classDef; Class resolvedClass; *(ILASClassLoader *lasClassLoader, LASClassDef *classDef) {} public Class get aka resolveToClass() { if (resolvedClass == null) { if (lasClassLoader == null) fail("Need LASClassLoader to define " + classDef.userGivenName); resolvedClass = lasClassLoader.defineLASClass(classDef.finalClassName(), -> classDef.toBytes()); // set static fields classDef.init(resolvedClass); } ret resolvedClass; } // This function is very defensive (doesn't resolve anything) toString { if (resolvedClass != null) ret className(resolvedClass); try object userGivenName(); if (classDef.classHash_cache != null) ret classDef.finalClassNameWithoutPrefix(); ret or2(userGivenName(), "script-defined class") + " [unresolved]"; } S userGivenName() { ret classDef.userGivenName; } }