public CodeBlock aprintln() { dup(); getstatic(p(System.class), "out", ci(PrintStream.class)); swap(); invokevirtual(p(PrintStream.class), "println", sig(void.class, params(Object.class))); return this; }
public CodeBlock aprintln() { dup(); getstatic(p(System.class), "err", ci(PrintStream.class)); swap(); invokevirtual(p(PrintStream.class), "println", sig(void.class, params(Object.class))); return this; }
public CodeBlock iprintln() { dup(); getstatic(p(System.class), "out", ci(PrintStream.class)); swap(); invokevirtual(p(PrintStream.class), "println", sig(void.class, params( int.class))); return this; }
public CodeBlock iprintln() { dup(); getstatic(p(System.class), "out", ci(PrintStream.class)); swap(); invokevirtual(p(PrintStream.class), "println", sig(void.class, params(int.class))); return this; }
public CodeBlock aprintln() { dup(); getstatic(p(System.class), "out", ci(PrintStream.class)); swap(); invokevirtual(p(PrintStream.class), "println", sig(void.class, params( Object.class))); return this; }
public JSFunction compileFunction(ExecutionContext context) { final String methodName = nextSyntheticMethodName(scope); final String syntheticSignature = sig(Object.class, params(Object.class, ExecutionContext.class, Object.class, scope.getParameterNames().length)); scope.setSyntheticMethodName(methodName); scope.setSyntheticSignature(syntheticSignature);
private void emitFunction(JiteClass jiteClass, HashMap<Label, LabelNode> jumpMap, CodeBlock block, DefineFunction instruction) { final FunctionScope functionScope = instruction.getScope(); final String[] parameterNames = functionScope.getParameterNames(); final CodeBlock fnBlock = new CodeBlock(); final List<BasicBlock> blocks = functionScope.prepareForCompilation(); for (BasicBlock bb : blocks) { for (Instruction fnInstr : bb.getInstructions()) { emitInstruction(jiteClass, jumpMap, fnBlock, fnInstr); } } if (!fnBlock.returns()) { fnBlock.aconst_null().areturn(); } final String methodName = nextSyntheticMethodName(functionScope); final String syntheticSignature = sig(Object.class, params(Object.class, ExecutionContext.class, Object.class, parameterNames.length)); jiteClass.defineMethod(methodName, Opcodes.ACC_STATIC | Opcodes.ACC_PUBLIC, syntheticSignature, fnBlock); functionScope.setSyntheticMethodName(methodName); functionScope.setSyntheticSignature(syntheticSignature); }