internal void AddLabelInfo(LabelTarget target, LabelInfo info) { if (this.Labels == null) { this.Labels = new HybridReferenceDictionary <LabelTarget, LabelInfo>(); } this.Labels[target] = info; }
internal void AddLabelInfo(LabelTarget target, LabelInfo info) { Debug.Assert(CanJumpInto); if (_labels == null) { _labels = new HybridReferenceDictionary <LabelTarget, LabelInfo>(); } _labels[target] = info; }
internal Interpreter(string name, LocalVariables locals, HybridReferenceDictionary <LabelTarget, BranchLabel> labelMapping, InstructionArray instructions, DebugInfo[] debugInfos, int compilationThreshold) { this._name = name; this._localCount = locals.LocalCount; this._closureVariables = locals.ClosureVariables; this._instructions = instructions; this._objects = instructions.Objects; this._labels = instructions.Labels; this._labelMapping = labelMapping; this._debugInfos = debugInfos; this._compilationThreshold = compilationThreshold; }
internal LoopCompiler(PowerShellLoopExpression loop, HybridReferenceDictionary <LabelTarget, BranchLabel> labelMapping, Dictionary <ParameterExpression, LocalVariable> locals, Dictionary <ParameterExpression, LocalVariable> closureVariables, int loopStartInstructionIndex, int loopEndInstructionIndex) { this._loop = loop; this._outerVariables = locals; this._closureVariables = closureVariables; this._frameDataVar = Expression.Parameter(typeof(object[])); this._frameClosureVar = Expression.Parameter(typeof(StrongBox <object>[])); this._frameVar = Expression.Parameter(typeof(InterpretedFrame)); this._loopVariables = new Dictionary <ParameterExpression, LoopVariable>(); this._returnLabel = Expression.Label(typeof(int)); this._labelMapping = labelMapping; this._loopStartInstructionIndex = loopStartInstructionIndex; this._loopEndInstructionIndex = loopEndInstructionIndex; }