protected void emitScriptBody(IRScriptBody script) { // Note: no index attached because there should be at most one script body per .class String name = JavaNameMangler.encodeScopeForBacktrace(script); String clsName = jvm.scriptToClass(script.getFile()); jvm.pushscript(clsName, script.getFile()); emitScope(script, name, signatureFor(script, false), false, true); jvm.cls().visitEnd(); jvm.popclass(); }
protected void emitScriptBody(IRScriptBody script) { // Note: no index attached because there should be at most one script body per .class String name = JavaNameMangler.encodeScopeForBacktrace(script); String clsName = jvm.scriptToClass(script.getFile()); jvm.pushscript(clsName, script.getFile()); emitScope(script, name, signatureFor(script, false), false, true); jvm.cls().visitEnd(); jvm.popclass(); }
protected Handle emitModuleBody(IRModuleBody method) { String name = JavaNameMangler.encodeScopeForBacktrace(method) + '$' + methodIndex++; Signature signature = signatureFor(method, false); emitScope(method, name, signature, false, true); return new Handle( Opcodes.H_INVOKESTATIC, jvm.clsData().clsName, name, sig(signature.type().returnType(), signature.type().parameterArray()), false); }
protected Handle emitModuleBody(IRModuleBody method) { String name = JavaNameMangler.encodeScopeForBacktrace(method) + '$' + methodIndex++; Signature signature = signatureFor(method, false); emitScope(method, name, signature, false, true); return new Handle( Opcodes.H_INVOKESTATIC, jvm.clsData().clsName, name, sig(signature.type().returnType(), signature.type().parameterArray()), false); }
private void emitWithSignatures(IRMethod method, JVMVisitorMethodContext context, String name) { context.setBaseName(name); Signature specificSig = signatureFor(method, true); if (specificSig == null) { // only varargs, so use name as is context.setVariableName(name); Signature signature = signatureFor(method, false); emitScope(method, name, signature, false, true); context.addNativeSignature(-1, signature.type()); } else { String specificName = name; context.setSpecificName(specificName); emitScope(method, specificName, specificSig, true, true); context.addNativeSignature(method.getStaticScope().getSignature().required(), specificSig.type()); // specific arity path, so mangle the dummy varargs wrapper String variableName = name + JavaNameMangler.VARARGS_MARKER; context.setVariableName(variableName); emitVarargsMethodWrapper(method, variableName, specificName, METHOD_SIGNATURE_VARARGS, specificSig); context.addNativeSignature(-1, METHOD_SIGNATURE_VARARGS.type()); } }
private void emitWithSignatures(IRMethod method, JVMVisitorMethodContext context, String name) { context.setBaseName(name); Signature specificSig = signatureFor(method, true); if (specificSig == null) { // only varargs, so use name as is context.setVariableName(name); Signature signature = signatureFor(method, false); emitScope(method, name, signature, false, true); context.addNativeSignature(-1, signature.type()); } else { String specificName = name; context.setSpecificName(specificName); emitScope(method, specificName, specificSig, true, true); context.addNativeSignature(method.getStaticScope().getSignature().required(), specificSig.type()); // specific arity path, so mangle the dummy varargs wrapper String variableName = name + JavaNameMangler.VARARGS_MARKER; context.setVariableName(variableName); emitVarargsMethodWrapper(method, variableName, specificName, METHOD_SIGNATURE_VARARGS, specificSig); context.addNativeSignature(-1, METHOD_SIGNATURE_VARARGS.type()); } }
protected Handle emitModuleBodyJIT(IRModuleBody method) { String name = JavaNameMangler.encodeScopeForBacktrace(method) + '$' + methodIndex++; String clsName = jvm.scriptToClass(method.getFile()); jvm.pushscript(clsName, method.getFile()); Signature signature = signatureFor(method, false); emitScope(method, name, signature, false, true); Handle handle = new Handle( Opcodes.H_INVOKESTATIC, jvm.clsData().clsName, name, sig(signature.type().returnType(), signature.type().parameterArray()), false); jvm.cls().visitEnd(); jvm.popclass(); return handle; }
protected Handle emitModuleBodyJIT(IRModuleBody method) { String name = JavaNameMangler.encodeScopeForBacktrace(method) + '$' + methodIndex++; String clsName = jvm.scriptToClass(method.getFile()); jvm.pushscript(clsName, method.getFile()); Signature signature = signatureFor(method, false); emitScope(method, name, signature, false, true); Handle handle = new Handle( Opcodes.H_INVOKESTATIC, jvm.clsData().clsName, name, sig(signature.type().returnType(), signature.type().parameterArray()), false); jvm.cls().visitEnd(); jvm.popclass(); return handle; }