@Override public void resume(ExecutionContext context, Object target) throws ResolvedControlThrowable { try { Dispatch.call(context, target, context.getReturnBuffer().getAsArray()); } catch (UnresolvedControlThrowable ct) { throw ct.resolve(); } }
@Override public void invoke(ExecutionContext context, Object[] args) throws ResolvedControlThrowable { context.getReturnBuffer().setTo(); try { context.resume(coroutine, args); } catch (UnresolvedControlThrowable ct) { throw ct.resolve(this, null); } }
@Override public void resume(ExecutionContext context, Object suspendedState) throws ResolvedControlThrowable { Object result = context.getReturnBuffer().get0(); context.getReturnBuffer().setTo(result); }
private static void _call_comparison_mt(ExecutionContext context, boolean cmpTo, Object handler, Object a, Object b) throws UnresolvedControlThrowable { try { call(context, handler, a, b); } catch (UnresolvedControlThrowable ct) { // suspended in the metamethod call throw ct.resolve(cmpResultResumable(cmpTo), null).unresolve(); } // not suspended: set the result, possibly flipping it ReturnBuffer result = context.getReturnBuffer(); result.setTo(cmpTo == Conversions.booleanValueOf(result.get0())); }
@Override public void resume(ExecutionContext context, Object suspendedState) throws ResolvedControlThrowable { ReturnBuffer rbuf = context.getReturnBuffer(); rbuf.setTo(rbuf.get0(), rbuf.get1(), rbuf.get2()); }
@Override public void resume(ExecutionContext context, Object suspendedState) throws ResolvedControlThrowable { Object additionResult = context.getReturnBuffer().get0(); // a(b + c) context.getReturnBuffer().setToCall(suspendedState, additionResult); }
@Override protected void invoke(ExecutionContext context, ArgumentIterator args) throws ResolvedControlThrowable { Coroutine c = context.getCurrentCoroutine(); context.getReturnBuffer().setTo(c, !context.isInMainCoroutine()); }
@Override public void resume(ExecutionContext context, Object suspendedState) throws ResolvedControlThrowable { Object target = context.getReturnBuffer().get0(); context.getReturnBuffer().setToCallWithContentsOf(target, (Object[]) suspendedState); }
private static void processResult(ExecutionContext context, long index, Object o) throws ResolvedControlThrowable { if (o != null) { context.getReturnBuffer().setTo(index, o); } else { context.getReturnBuffer().setTo(null); } }
@Override public void invoke(ExecutionContext context) throws ResolvedControlThrowable { context.getReturnBuffer().setToCall(x); }
static void mt_invoke(ExecutionContext context, Object target) throws ResolvedControlThrowable { LuaFunction fn = callTarget(context, target); if (fn == target) fn.invoke(context); else fn.invoke(context, target); }
@Override public void pauseIfRequested() throws UnresolvedControlThrowable { if (schedulingContext.shouldPause()) { pause(); } }
@Override public void resume(ExecutionContext context, Object suspendedState) throws ResolvedControlThrowable { // trim to single value Object result = context.getReturnBuffer().get0(); context.getReturnBuffer().setTo(result); }
@Override public void resume(ExecutionContext context, Object suspendedState) throws ResolvedControlThrowable { context.getReturnBuffer().setTo(); }
static void mt_invoke(ExecutionContext context, Object target, Object arg1) throws ResolvedControlThrowable { LuaFunction fn = callTarget(context, target); if (fn == target) fn.invoke(context, arg1); else fn.invoke(context, target, arg1); }
private static void prependFalseAndTrim(ExecutionContext context) { ReturnBuffer rbuf = context.getReturnBuffer(); Object errorObject = rbuf.get0(); rbuf.setTo(Boolean.FALSE, errorObject); }
static void mt_invoke(ExecutionContext context, Object target, Object arg1, Object arg2, Object arg3, Object arg4, Object arg5) throws ResolvedControlThrowable { LuaFunction fn = callTarget(context, target); if (fn == target) fn.invoke(context, arg1, arg2, arg3, arg4, arg5); else fn.invoke(context, new Object[] { target, arg1, arg2, arg3, arg4, arg5 }); }
static void mt_invoke(ExecutionContext context, Object target, Object arg1, Object arg2, Object arg3) throws ResolvedControlThrowable { LuaFunction fn = callTarget(context, target); if (fn == target) fn.invoke(context, arg1, arg2, arg3); else fn.invoke(context, target, arg1, arg2, arg3); }
static void mt_invoke(ExecutionContext context, Object target, Object arg1, Object arg2, Object arg3, Object arg4) throws ResolvedControlThrowable { LuaFunction fn = callTarget(context, target); if (fn == target) fn.invoke(context, arg1, arg2, arg3, arg4); else fn.invoke(context, target, arg1, arg2, arg3, arg4); }
static void mt_invoke(ExecutionContext context, Object target, Object arg1, Object arg2) throws ResolvedControlThrowable { LuaFunction fn = callTarget(context, target); if (fn == target) fn.invoke(context, arg1, arg2); else fn.invoke(context, target, arg1, arg2); }