public void rethrowException() { loadException(); method.athrow(); }
public void rethrowException() { loadException(); method.athrow(); }
@Override public void ThrowExceptionInstr(ThrowExceptionInstr throwexceptioninstr) { visit(throwexceptioninstr.getException()); jvmAdapter().athrow(); }
@Override public void ThrowExceptionInstr(ThrowExceptionInstr throwexceptioninstr) { visit(throwexceptioninstr.getException()); jvmAdapter().athrow(); }
public void raiseTypeError(String msg) { loadRuntime(); method.ldc(msg); invokeRuby("newTypeError", sig(RaiseException.class, params(String.class))); method.athrow(); }
public void raiseTypeError(String msg) { loadRuntime(); method.ldc(msg); invokeRuby("newTypeError", sig(RaiseException.class, params(String.class))); method.athrow(); }
@Override public void RaiseRequiredKeywordArgumentErrorInstr(RaiseRequiredKeywordArgumentError instr) { jvmMethod().loadContext(); jvmAdapter().ldc(instr.getId()); jvmMethod().invokeIRHelper("newRequiredKeywordArgumentError", sig(RaiseException.class, ThreadContext.class, String.class)); jvmAdapter().athrow(); }
@Override public void RaiseRequiredKeywordArgumentErrorInstr(RaiseRequiredKeywordArgumentError instr) { jvmMethod().loadContext(); jvmAdapter().ldc(instr.getId()); jvmMethod().invokeIRHelper("newRequiredKeywordArgumentError", sig(RaiseException.class, ThreadContext.class, String.class)); jvmAdapter().athrow(); }
public void rethrowIfSystemExit() { loadRuntime(); method.ldc("SystemExit"); method.invokevirtual(p(Ruby.class), "fastGetClass", sig(RubyClass.class, String.class)); method.swap(); method.invokevirtual(p(RubyModule.class), "isInstance", sig(boolean.class, params(IRubyObject.class))); method.iconst_0(); Label ifEnd = new Label(); method.if_icmpeq(ifEnd); loadException(); method.athrow(); method.label(ifEnd); }
public void rethrowIfSystemExit() { loadRuntime(); method.ldc("SystemExit"); method.invokevirtual(p(Ruby.class), "fastGetClass", sig(RubyClass.class, String.class)); method.swap(); method.invokevirtual(p(RubyModule.class), "isInstance", sig(boolean.class, params(IRubyObject.class))); method.iconst_0(); Label ifEnd = new Label(); method.if_icmpeq(ifEnd); loadException(); method.athrow(); method.label(ifEnd); }
private void performEnsureInner(BranchCallback regularCode, BranchCallback protectedCode) { Label codeBegin = new Label(); Label codeEnd = new Label(); Label ensureBegin = new Label(); Label ensureEnd = new Label(); method.label(codeBegin); regularCode.branch(this); method.label(codeEnd); protectedCode.branch(this); method.areturn(); method.label(ensureBegin); method.astore(getExceptionIndex()); method.label(ensureEnd); protectedCode.branch(this); method.aload(getExceptionIndex()); method.athrow(); method.trycatch(codeBegin, codeEnd, ensureBegin, null); method.trycatch(ensureBegin, ensureEnd, ensureBegin, null); loadNil(); endBody(); }
private void performEnsureInner(BranchCallback regularCode, BranchCallback protectedCode) { Label codeBegin = new Label(); Label codeEnd = new Label(); Label ensureBegin = new Label(); Label ensureEnd = new Label(); method.label(codeBegin); regularCode.branch(this); method.label(codeEnd); protectedCode.branch(this); method.areturn(); method.label(ensureBegin); method.astore(getExceptionIndex()); method.label(ensureEnd); protectedCode.branch(this); method.aload(getExceptionIndex()); method.athrow(); method.trycatch(codeBegin, codeEnd, ensureBegin, null); method.trycatch(ensureBegin, ensureEnd, ensureBegin, null); loadNil(); endBody(); }
adapter.aload(tempIndex); adapter.monitorexit(); adapter.athrow();
adapter.aload(tempIndex); adapter.monitorexit(); adapter.athrow();
method.athrow(); // rethrow it
method.athrow(); // rethrow it
classBody.loadThreadContext(); classBody.invokeThreadContext("postCompiledClass", sig(Void.TYPE, params())); classBody.method.athrow();
classBody.loadThreadContext(); classBody.invokeThreadContext("postCompiledClass", sig(Void.TYPE, params())); classBody.method.athrow();