IRubyObject ruby_next = DiametricUtils.convertJavaToRuby(context, itr.next());
IRubyObject block_result = block.yield(context, ruby_next);
IRubyObject value = hash_result.callMethod(context, "[]", block_result);
if (value.isNil()) {
// new key
IRubyObject[] args = new IRubyObject[]{block_result, runtime.newArray()};
value = hash_result.callMethod(context, "[]=", args);
}
value.callMethod(context, "<<", ruby_next);
}
return hash_result;