# File lib/json/common.rb, line 295
  def load(source, proc = nil, options = {})
    load_default_options = {
      :max_nesting      => false,
      :allow_nan        => true,
      :create_additions => false
    }
    opts = load_default_options.merge options
    if source.respond_to? :to_str
      source = source.to_str
    elsif source.respond_to? :to_io
      source = source.to_io.read
    else
      source = source.read
    end
    result = parse(source, opts)
    recurse_proc(result, &proc) if proc
    result
  end