public override int Run(InterpretedFrame frame) { DebugInfo info = DebugInfo.GetMatchingDebugInfo(_debugInfos, frame.FaultingInstruction); if (info != null && !info.IsClear) { frame.Push(info.StartLine); }else{ frame.Push(-1); } return +1; }
public override int Run(InterpretedFrame frame) { frame.Push(PythonOps.MakeClosureCell()); return +1; }
private ExceptionHandler HandleCatch(InterpretedFrame frame, Exception exception) { Type exceptionType = exception.GetType(); var handler = GetBestHandler(frame, exceptionType); if (handler == null) { return null; } frame.StackIndex = _numberOfLocals + handler.HandlerStackDepth; if (handler.IsFinallyOrFault) { frame.InstructionIndex = handler.StartHandlerIndex; RunBlock(frame, handler.EndHandlerIndex); if (frame.InstructionIndex == handler.EndHandlerIndex) { frame.InstructionIndex -= 1; // push back into the right range return HandleCatch(frame, exception); } else { return handler; } } else { if (handler.PushException) { frame.Push(exception); } frame.InstructionIndex = handler.StartHandlerIndex; return handler; } }
public override int Run(InterpretedFrame frame) { // it�s okay to pop the args in this order due to commutativity of referential equality frame.Push(PythonOps.IsNot(frame.Pop(), frame.Pop())); return +1; }
public override int Run(InterpretedFrame frame) { frame.Push(TotemOps.GetParentContextFromFunction((TotemFunction)frame.Pop())); return +1; }
public override int Run(InterpretedFrame frame) { // unfortunately Type.IsInstanceOfType() is 35-times slower than "is T" so we use generic code: frame.Push(ScriptingRuntimeHelpers.BooleanToObject(frame.Pop() is T)); return(+1); }
public override int Run(InterpretedFrame frame) { Single right = (Single)frame.Pop(); frame.Push(((Single)frame.Pop()) > right); return +1; }
public override int Run(InterpretedFrame frame) { var ret = new IStrongBox[_count]; for (int i = ret.Length - 1; i >= 0; i--) { ret[i] = (IStrongBox)frame.Pop(); } frame.Push(RuntimeVariables.Create(ret)); return +1; }
public override int Run(InterpretedFrame frame) { frame.Parent = RubyExceptionData.CurrentInterpretedFrame.Update(frame); frame.Push(frame); return +1; }
public override int Run(InterpretedFrame frame) { frame.Push((bool)frame.Pop() ? ScriptingRuntimeHelpers.False : ScriptingRuntimeHelpers.True); return(+1); }
public override int Run(InterpretedFrame frame) { if (_site == null) { _site = CallSite<Func<CallSite, object, CodeContext, object>>.Create(_binder); } var context = (CodeContext)frame.Pop(); frame.Push(_site.Target(_site, frame.Pop(), context)); return +1; }
public override int Run(InterpretedFrame frame) { frame.Push(((Byte)frame.Pop()) == ((Byte)frame.Pop())); return(+1); }
public override int Run(InterpretedFrame frame) { frame.Push(TotemOps.GetLocalClosureFromFunction((TotemFunction)frame.Pop())); return +1; }
public override int Run(InterpretedFrame frame) { frame.Push (value); return +1; }
public override int Run(InterpretedFrame frame) { Int32 right = (Int32)frame.Pop(); frame.Push(((Int32)frame.Pop()) < right); return +1; }
public override int Run(InterpretedFrame frame) { Byte right = (Byte)frame.Pop(); frame.Push(((Byte)frame.Pop()) < right); return +1; }
public override int Run(InterpretedFrame frame) { frame.Push(_field.GetValue(frame.Pop())); return(+1); }
public sealed override int Run(InterpretedFrame frame) { object[] args = new object[_argumentCount]; for (int i = _argumentCount - 1; i >= 0; i--) { args[i] = frame.Pop(); } object ret = Invoke(args); if (_target.ReturnType != typeof(void)) { frame.Push(ret); } return +1; }
public override int Run(InterpretedFrame frame) { var arg0 = frame.Pop(); var target = frame.Pop(); frame.Push(_site.Target(_site, (CodeContext)frame.Pop(), target, arg0)); return +1; }
public override int Run(InterpretedFrame frame) { frame.Push(default(T)); return(+1); }
public override int Run(InterpretedFrame frame) { var arg5 = frame.Pop(); var arg4 = frame.Pop(); var arg3 = frame.Pop(); var arg2 = frame.Pop(); var arg1 = frame.Pop(); var arg0 = frame.Pop(); var target = frame.Pop(); frame.Push(_site.Target(_site, (CodeContext)frame.Pop(), target, arg0, arg1, arg2, arg3, arg4, arg5)); return +1; }
public override int Run(InterpretedFrame frame) { var targetDelegate = _targetField.GetValue(_site); object[] args = new object[_argCount]; for (int i = _argCount - 1; i >= 1; i--) { args[i] = frame.Pop(); } args[0] = _site; object ret = _target.InvokeInstance(targetDelegate, args); if (!_isVoid) frame.Push(ret); return +1; }
public override int Run(InterpretedFrame frame) { if (_isLocal) { frame.Push(PythonOps.GetLocal((CodeContext)frame.Pop(), _name)); } else { frame.Push(PythonOps.GetGlobal((CodeContext)frame.Pop(), _name)); } return +1; }
public override int Run(InterpretedFrame frame) { object[] defaults; if (_defaultCount > 0) { defaults = new object[_defaultCount]; for (int i = 0; i < _defaultCount; i++) { defaults[i] = frame.Pop(); } } else { defaults = ArrayUtils.EmptyObjects; } object modName; if (_name != null) { modName = _name.RawValue; } else { modName = frame.Pop(); } CodeContext context = /*_context ?? */(CodeContext)frame.Pop(); frame.Push(PythonOps.MakeFunction(context, _def.FunctionCode, modName, defaults)); return +1; }
public override int Run(InterpretedFrame frame) { frame.Push(PythonOps.MakeEmptyDict()); return +1; }
public override int Run(InterpretedFrame frame) { frame.Push((bool)frame.Pop() ? ScriptingRuntimeHelpers.False : ScriptingRuntimeHelpers.True); return +1; }
public override int Run(InterpretedFrame frame) { frame.Push(_global.CurrentValueLightThrow); return +1; }
public override int Run(InterpretedFrame frame) { frame.Push(((Byte)frame.Pop()) != ((Byte)frame.Pop())); return +1; }
public override int Run(InterpretedFrame frame) { frame.Push(TotemOps.GetVariable((CodeContext)frame.Pop(), _name, !_isLocal, _lightThrow)); return +1; }
public override int Run(InterpretedFrame frame) { Char right = (Char)frame.Pop(); frame.Push(((Char)frame.Pop()) < right); return +1; }
public override int Run(InterpretedFrame frame) { frame.Push(_field.GetValue(frame.Pop())); return +1; }
public override int Run(InterpretedFrame frame) { UInt64 right = (UInt64)frame.Pop(); frame.Push(((UInt64)frame.Pop()) < right); return +1; }
public override int Run(InterpretedFrame frame) { frame.Push(frame.Pop() != frame.Pop()); return(+1); }
public override int Run(InterpretedFrame frame) { frame.Push(((UInt64)frame.Pop()) == ((UInt64)frame.Pop())); return +1; }
public override int Run(InterpretedFrame frame) { frame.Push(((UInt64)frame.Pop()) != ((UInt64)frame.Pop())); return(+1); }
public override int Run(InterpretedFrame frame) { frame.Push(Convert(frame.Pop())); return +1; }
public override int Run(InterpretedFrame frame) { // unfortunately Type.IsInstanceOfType() is 35-times slower than "is T" so we use generic code: frame.Push(frame.Pop() is T); return(+1); }
public override int Run(InterpretedFrame frame) { frame.Push(PythonOps.GetGlobalContext((CodeContext)frame.Pop())); return +1; }
public override int Run(InterpretedFrame frame) { frame.Push(value); return(+1); }