    # File lib/json/common.rb, line 370
      def dump(obj, anIO = nil, limit = nil)
        if anIO and limit.nil?
          anIO = anIO.to_io if anIO.respond_to?(:to_io)
          unless anIO.respond_to?(:write)
            limit = anIO
            anIO = nil
          end
        end
        opts = JSON.dump_default_options
        limit and opts.update(:max_nesting => limit)
        result = generate(obj, opts)
        if anIO
          anIO.write result
          anIO
        else
          result
        end
      rescue JSON::NestingError
        raise ArgumentError, "exceed depth limit"
      end