internal void Evaluate(Template template, out Context context, out Hash registers, out IEnumerable <Type> filters) { if (Context != null) { context = Context; registers = null; filters = null; context.RestartTimeout(); return; } List <Hash> environments = new List <Hash>(); if (LocalVariables != null) { environments.Add(LocalVariables); } if (template.IsThreadSafe) { context = new Context(environments, new Hash(), new Hash(), ErrorsOutputMode, MaxIterations, Timeout, FormatProvider) { SyntaxCompatibilityLevel = this.SyntaxCompatibilityLevel }; } else { environments.Add(template.Assigns); context = new Context(environments, template.InstanceAssigns, template.Registers, ErrorsOutputMode, MaxIterations, Timeout, FormatProvider) { SyntaxCompatibilityLevel = this.SyntaxCompatibilityLevel }; } registers = Registers; filters = Filters; }
internal void Evaluate(Template template, out Context context, out Hash registers, out IEnumerable <Type> filters) { if (this.Context != null) { context = this.Context; registers = null; filters = null; context.RestartTimeout(); return; } var environments = new List <Hash>(); if (this.LocalVariables != null) { environments.Add(this.LocalVariables); } if (template.IsThreadSafe) { context = new Context(environments, new Hash(), new Hash(), this.ErrorsOutputMode, this.MaxIterations, this.Timeout, this.FormatProvider); } else { environments.Add(template.Assigns); context = new Context(environments, template.InstanceAssigns, template.Registers, this.ErrorsOutputMode, this.MaxIterations, this.Timeout, this.FormatProvider); } registers = this.Registers; filters = this.Filters; }