class Less::Error

def backtrace

def backtrace
  @cause ? @cause.backtrace : super
end

def cause

def cause
  @cause
end

def initialize(cause, value = nil)

def initialize(cause, value = nil)
  @value = value
  message = nil
  if @value # 2 args passed
    message = @value['message']
  else # allow passing only value as first arg cause :
    if cause.respond_to?(:'[]') && message = cause['message']
      @value = cause
    end
  end
  
  if cause.is_a?(::Exception)
    @cause = cause
    super(message || cause.message)
  else
    super(message || cause)
  end
end