module JSON::TruffleRuby::Generator::GeneratorMethods::Array

def json_transform(state)

def json_transform(state)
  depth = state.depth += 1
  if empty?
    state.depth -= 1
    return '[]'
  end
  result = '['.dup
  if state.array_nl.empty?
    delim = ","
  else
    result << state.array_nl
    delim = ",#{state.array_nl}"
  end
  first = true
  indent = !state.array_nl.empty?
  each { |value|
    result << delim unless first
    result << state.indent * depth if indent
    if state.strict? && !(false == value || true == value || nil == value || String === value || Array === value || Hash === value || Integer === value || Float === value)
      raise GeneratorError, "#{value.class} not allowed in JSON"
    elsif value.respond_to?(:to_json)
      result << value.to_json(state)
    else
      result << %{"#{String(value)}"}
    end
    first = false
  }
  depth = state.depth -= 1
  result << state.array_nl
  result << state.indent * depth if indent
  result << ']'
end