@Override public ClassLoader getClassLoader() { return controller.getClassLoader(); }
private void emitRuntime(BuildTarget buildTarget, String outputName) throws IOException { ClassLoader loader = controller.getClassLoader(); try (BufferedReader reader = new BufferedReader(new InputStreamReader( loader.getResourceAsStream("org/teavm/backend/wasm/wasm-runtime.js"), StandardCharsets.UTF_8)); Writer writer = new OutputStreamWriter(buildTarget.createResource(outputName), StandardCharsets.UTF_8)) { while (true) { String line = reader.readLine(); if (line == null) { break; } writer.append(line).append('\n'); } } }
private List<ClassNode> modelToAst(ListableClassHolderSource classes) { AsyncMethodFinder asyncFinder = new AsyncMethodFinder(controller.getDependencyInfo().getCallGraph(), controller.getDiagnostics()); asyncFinder.find(classes); asyncMethods.addAll(asyncFinder.getAsyncMethods()); asyncFamilyMethods.addAll(asyncFinder.getAsyncFamilyMethods()); Decompiler decompiler = new Decompiler(classes, controller.getClassLoader(), controller.getCacheStatus(), asyncMethods, asyncFamilyMethods, controller.isFriendlyToDebugger(), false); decompiler.setRegularMethodCache(astCache); for (Map.Entry<MethodReference, Generator> entry : methodGenerators.entrySet()) { decompiler.addGenerator(entry.getKey(), entry.getValue()); } for (MethodReference injectedMethod : methodInjectors.keySet()) { decompiler.addMethodToSkip(injectedMethod); } List<String> classOrder = decompiler.getClassOrdering(classes.getClassNames()); List<ClassNode> classNodes = new ArrayList<>(); for (String className : classOrder) { ClassHolder cls = classes.get(className); for (MethodHolder method : cls.getMethods()) { preprocessNativeMethod(method, decompiler); if (controller.wasCancelled()) { break; } } classNodes.add(decompiler.decompile(cls)); } return classNodes; }
StringPool stringPool = new StringPool(); Decompiler decompiler = new Decompiler(classes, controller.getClassLoader(), AlwaysStaleCacheStatus.INSTANCE, new HashSet<>(), new HashSet<>(), false, true); Characteristics characteristics = new Characteristics(controller.getUnprocessedClassSource()); IntrinsicFactoryContextImpl intrinsicFactoryContext = new IntrinsicFactoryContextImpl( classGenerator.getStructuresWriter(), classGenerator.getPreCodeWriter(), controller.getUnprocessedClassSource(), controller.getClassLoader(), controller.getServices(), controller.getProperties()); for (IntrinsicFactory intrinsicFactory : intrinsicFactories) {
vtableProvider, tagRegistry, binaryWriter, names); Decompiler decompiler = new Decompiler(classes, controller.getClassLoader(), AlwaysStaleCacheStatus.INSTANCE, new HashSet<>(), new HashSet<>(), false, true); WasmStringPool stringPool = classGenerator.getStringPool();
RenderingContext renderingContext = new RenderingContext(debugEmitterToUse, controller.getUnprocessedClassSource(), classes, controller.getClassLoader(), controller.getServices(), controller.getProperties(), naming, controller.getDependencyInfo(), m -> isVirtual(virtualMethodContributorContext, m)); renderingContext.setMinifying(minifying);
@Override public ClassLoader getClassLoader() { return controller.getClassLoader(); }
private List<ClassNode> modelToAst(ListableClassHolderSource classes) { AsyncMethodFinder asyncFinder = new AsyncMethodFinder(controller.getDependencyInfo().getCallGraph(), controller.getDiagnostics()); asyncFinder.find(classes); asyncMethods.addAll(asyncFinder.getAsyncMethods()); asyncFamilyMethods.addAll(asyncFinder.getAsyncFamilyMethods()); Decompiler decompiler = new Decompiler(classes, controller.getClassLoader(), asyncMethods, asyncFamilyMethods, controller.isFriendlyToDebugger()); decompiler.setRegularMethodCache(controller.isIncremental() ? astCache : null); for (Map.Entry<MethodReference, Generator> entry : methodGenerators.entrySet()) { decompiler.addGenerator(entry.getKey(), entry.getValue()); } for (MethodReference injectedMethod : methodInjectors.keySet()) { decompiler.addMethodToSkip(injectedMethod); } List<String> classOrder = decompiler.getClassOrdering(classes.getClassNames()); List<ClassNode> classNodes = new ArrayList<>(); for (String className : classOrder) { ClassHolder cls = classes.get(className); for (MethodHolder method : cls.getMethods()) { preprocessNativeMethod(method); if (controller.wasCancelled()) { break; } } classNodes.add(decompiler.decompile(cls)); } return classNodes; }
classes, vtableProvider, tagRegistry, binaryWriter); Decompiler decompiler = new Decompiler(classes, controller.getClassLoader(), new HashSet<>(), new HashSet<>(), false); WasmStringPool stringPool = classGenerator.getStringPool();
controller.getClassLoader(), controller.getServices(), controller.getProperties(), naming); renderingContext.setMinifying(minifying); Renderer renderer = new Renderer(sourceWriter, asyncMethods, asyncFamilyMethods,