# File lib/less/parser.rb, line 61
    def parse(less)
      error, tree = nil, nil
      Less::JavaScript.exec do
        @parser.parse(less, lambda { |*args| # (error, tree)
          # v8 >= 0.10 passes this as first arg :
          if args.size > 2
            error, tree = args[-2], args[-1]
          elsif args.last.respond_to?(:message) && args.last.message
            # might get invoked as callback(error)
            error = args.last
          else
            error, tree = *args
          end
          fail error.message unless error.nil?
        })
      end
      Tree.new(tree) if tree
    end