class ActionView::Base

def _run(method, template, locals, buffer, add_to_stack: true, has_strict_locals: false, &block)

def _run(method, template, locals, buffer, add_to_stack: true, has_strict_locals: false, &block)
  _old_output_buffer, _old_virtual_path, _old_template = @output_buffer, @virtual_path, @current_template
  @current_template = template if add_to_stack
  @output_buffer = buffer
  if has_strict_locals
    begin
      public_send(method, locals, buffer, **locals, &block)
    rescue ArgumentError => argument_error
      public_send_line = __LINE__ - 2
      frame = argument_error.backtrace_locations[1]
      if frame.path == __FILE__ && frame.lineno == public_send_line
        raise StrictLocalsError.new(argument_error, @current_template)
      end
      raise
    end
  else
    public_send(method, locals, buffer, &block)
  end
ensure
  @output_buffer, @virtual_path, @current_template = _old_output_buffer, _old_virtual_path, _old_template
end