Beispiel #1
0
        internal Interpreter(LambdaExpression lambda, bool[] localIsBoxed, int maxStackDepth,
            InstructionArray instructions, ExceptionHandler[] handlers, DebugInfo[] debugInfos, int compilationThreshold) {

            _lambda = lambda;
            _numberOfLocals = localIsBoxed.Length;
            if (Array.IndexOf(localIsBoxed, true) != -1) {
                _localIsBoxed = localIsBoxed;
            } else {
                _localIsBoxed = null;
            }
                
            _maxStackDepth = maxStackDepth;
            _instructions = instructions;
            _objects = instructions.Objects;
            _handlers = handlers;
            _debugInfos = debugInfos;

            _onlyFaultHandlers = true;
            foreach (var handler in handlers) {
                if (!handler.IsFinallyOrFault) {
                    _onlyFaultHandlers = false;
                    break;
                }
            }

            _compilationThreshold = compilationThreshold;
        }
Beispiel #2
0
        internal Interpreter(LambdaExpression lambda, LocalVariables locals, Dictionary <LabelTarget, BranchLabel> labelMapping,
                             InstructionArray instructions, ExceptionHandler[] handlers, DebugInfo[] debugInfos, int compilationThreshold)
        {
            _lambda           = lambda;
            _localCount       = locals.LocalCount;
            _closureVariables = locals.ClosureVariables;

            _instructions = instructions;
            _objects      = instructions.Objects;
            _labels       = instructions.Labels;
            _labelMapping = labelMapping;

            _handlers             = handlers;
            _debugInfos           = debugInfos;
            _compilationThreshold = compilationThreshold;
        }
Beispiel #3
0
        internal Interpreter(string name, LocalVariables locals, HybridReferenceDictionary <LabelTarget, BranchLabel> labelMapping,
                             InstructionArray instructions, ExceptionHandler[] handlers, DebugInfo[] debugInfos, int compilationThreshold)
        {
            _name            = name;
            LocalCount       = locals.LocalCount;
            ClosureVariables = locals.ClosureVariables;

            Instructions = instructions;
            _objects     = instructions.Objects;
            _labels      = instructions.Labels;
            LabelMapping = labelMapping;

            _handlers             = handlers;
            _debugInfos           = debugInfos;
            _compilationThreshold = compilationThreshold;
        }
Beispiel #4
0
        internal Interpreter(LambdaExpression lambda, LocalVariables locals, Dictionary<LabelTarget, BranchLabel> labelMapping,
            InstructionArray instructions, ExceptionHandler[] handlers, DebugInfo[] debugInfos, int compilationThreshold) {

            _lambda = lambda;
            _locals = locals;
            _boxedLocals = locals.GetBoxed();
                
            _instructions = instructions;
            _objects = instructions.Objects;
            _labels = instructions.Labels;
            _labelMapping = labelMapping;

            _handlers = handlers;
            _debugInfos = debugInfos;
            _compilationThreshold = compilationThreshold;
        }
Beispiel #5
0
        internal Interpreter(string name, LocalVariables locals, HybridReferenceDictionary<LabelTarget, BranchLabel> labelMapping,
            InstructionArray instructions, ExceptionHandler[] handlers, DebugInfo[] debugInfos, int compilationThreshold) {

            _name = name;
            _localCount = locals.LocalCount;
            _closureVariables = locals.ClosureVariables;

            _instructions = instructions;
            _objects = instructions.Objects;
            _labels = instructions.Labels;
            _labelMapping = labelMapping;

            _handlers = handlers;
            _debugInfos = debugInfos;
            _compilationThreshold = compilationThreshold;
        }
Beispiel #6
0
 public DebugView(InstructionArray array)
 {
     _array = array;
 }
Beispiel #7
0
            public DebugView(InstructionArray array) {
                _array = array;

            }