| hash() |  | 0% |  | 0% | 3 | 3 | 9 | 9 | 1 | 1 |
| op_asetSmallForString(Ruby, RubyString, IRubyObject) |  | 0% |  | 0% | 3 | 3 | 10 | 10 | 1 | 1 |
| fetch(ThreadContext, IRubyObject[], Block) |  | 0% |  | 0% | 3 | 3 | 5 | 5 | 1 | 1 |
| inspectHash(ThreadContext) |  | 0% | | n/a | 1 | 1 | 7 | 7 | 1 | 1 |
| eachCommon(ThreadContext, Block) |  | 0% |  | 0% | 2 | 2 | 5 | 5 | 1 | 1 |
| checkDefaultProcArity(IRubyObject) |   | 38% |   | 20% | 5 | 6 | 2 | 5 | 0 | 1 |
| putAll(Map) |  | 0% |  | 0% | 2 | 2 | 6 | 6 | 1 | 1 |
| equals(Object) |  | 0% |  | 0% | 4 | 4 | 3 | 3 | 1 | 1 |
| default_value_get(ThreadContext, IRubyObject[]) |  | 0% |  | 0% | 3 | 3 | 4 | 4 | 1 | 1 |
| JavaSoftHashValue(int) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| alloc(int) |  | 0% | | n/a | 1 | 1 | 4 | 4 | 1 | 1 |
| JavaSoftCheckResize() |  | 0% |  | 0% | 3 | 3 | 7 | 7 | 1 | 1 |
| resizeAndAdjustThreshold(RubyHash.RubyHashEntry[]) |  | 0% | | n/a | 1 | 1 | 4 | 4 | 1 | 1 |
| set_default_proc20(IRubyObject) |   | 72% |   | 67% | 2 | 4 | 1 | 12 | 0 | 1 |
| newHash(Ruby, Map, IRubyObject) |  | 0% |  | 0% | 3 | 3 | 2 | 2 | 1 | 1 |
| fastASetSmallCheckString(Ruby, IRubyObject, IRubyObject) |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| fastASetSmall(Ruby, IRubyObject, IRubyObject, boolean) |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| flatten(ThreadContext) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| op_asetForString(Ruby, RubyString, IRubyObject) |   | 73% |   | 83% | 1 | 4 | 2 | 11 | 0 | 1 |
| fetch(ThreadContext, IRubyObject, Block) |   | 63% |   | 75% | 1 | 3 | 1 | 6 | 0 | 1 |
| flatten(ThreadContext, IRubyObject) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| containsValue(Object) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| op_aset19(ThreadContext, IRubyObject, IRubyObject) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| overThreshold() |  | 0% |  | 0% | 2 | 2 | 1 | 1 | 1 | 1 |
| aset(IRubyObject, IRubyObject) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| replaceCommon19(ThreadContext, IRubyObject, RubyHash.Visitor) |   | 86% |   | 75% | 2 | 5 | 1 | 12 | 0 | 1 |
| inspect19(ThreadContext) |   | 82% |  | 100% | 0 | 3 | 0 | 5 | 0 | 1 |
| dupFast(ThreadContext) |   | 82% |   | 50% | 1 | 2 | 1 | 8 | 0 | 1 |
| iteratorEntrySync() |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| iteratorExitSync() |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| aref(IRubyObject) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| each_value(ThreadContext, Block) |   | 60% |   | 50% | 1 | 2 | 0 | 1 | 0 | 1 |
| JavaSoftBucketIndex(int, int) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| internalPutSmall(IRubyObject, IRubyObject) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| directKeySet() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| values() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| directValues() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| fastASetCheckString19(Ruby, IRubyObject, IRubyObject) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| fastASetSmallCheckString19(Ruby, IRubyObject, IRubyObject) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| create(ThreadContext, IRubyObject, IRubyObject[], Block) |   | 96% |   | 71% | 5 | 10 | 2 | 27 | 0 | 1 |
| marshalTo(RubyHash, MarshalStream) |   | 84% |  | 100% | 0 | 2 | 2 | 9 | 0 | 1 |
| checkIterating() |   | 44% |   | 50% | 1 | 2 | 1 | 3 | 0 | 1 |
| fastASetSmall(IRubyObject, IRubyObject) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| each(ThreadContext, Block) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| index(ThreadContext, IRubyObject) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| indices(ThreadContext, IRubyObject[]) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| select(ThreadContext, Block) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| initialize_copy(ThreadContext, IRubyObject) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| concurrentModification() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| to_a() |   | 85% | | n/a | 0 | 1 | 2 | 7 | 0 | 1 |
| keys() |   | 81% | | n/a | 0 | 1 | 2 | 6 | 0 | 1 |
| rb_values() |   | 79% | | n/a | 0 | 1 | 2 | 5 | 0 | 1 |
| fastASet(Ruby, IRubyObject, IRubyObject, boolean) |   | 69% |   | 50% | 1 | 2 | 1 | 4 | 0 | 1 |
| default_value_get(ThreadContext) |   | 67% |   | 50% | 1 | 2 | 1 | 3 | 0 | 1 |
| set_default_proc(IRubyObject) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| inspect(ThreadContext) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| to_s(ThreadContext) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| clear() |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| visitLimited(RubyHash.Visitor, long) |   | 95% |   | 64% | 5 | 8 | 0 | 12 | 0 | 1 |
| iteratorEntry() |   | 70% |   | 50% | 1 | 2 | 2 | 5 | 0 | 1 |
| iteratorExit() |   | 70% |   | 50% | 1 | 2 | 2 | 5 | 0 | 1 |
| static {...} |   | 99% |   | 50% | 1 | 2 | 1 | 21 | 0 | 1 |
| isEmpty() |   | 71% |   | 50% | 1 | 2 | 0 | 1 | 0 | 1 |
| getJavaClass() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| MRICheckResize() |  | 97% |   | 83% | 1 | 4 | 1 | 8 | 0 | 1 |
| rehash() |  | 100% |  | 100% | 0 | 4 | 0 | 18 | 0 | 1 |
| internalPutSmall(IRubyObject, IRubyObject, boolean) |  | 100% |  | 100% | 0 | 4 | 0 | 11 | 0 | 1 |
| internalDelete(int, RubyHash.EntryMatchType, Object) |  | 100% |   | 90% | 1 | 6 | 0 | 13 | 0 | 1 |
| RubyHash(Ruby, Map, IRubyObject) |  | 100% |  | 100% | 0 | 2 | 0 | 12 | 0 | 1 |
| resize(int) |  | 100% |  | 100% | 0 | 3 | 0 | 14 | 0 | 1 |
| compare(ThreadContext, MethodNames, IRubyObject) |  | 100% |  | 100% | 0 | 4 | 0 | 13 | 0 | 1 |
| initialize(IRubyObject[], Block) |  | 100% |  | 100% | 0 | 4 | 0 | 8 | 0 | 1 |
| RubyHash(Ruby, RubyClass, RubyHash) |  | 100% | | n/a | 0 | 1 | 0 | 10 | 0 | 1 |
| internalCopyTable(RubyHash.RubyHashEntry) |  | 100% |  | 100% | 0 | 2 | 0 | 5 | 0 | 1 |
| shift(ThreadContext) |  | 100% |  | 100% | 0 | 3 | 0 | 9 | 0 | 1 |
| internalGetEntry(IRubyObject) |  | 100% |  | 100% | 0 | 4 | 0 | 6 | 0 | 1 |
| unmarshalFrom(UnmarshalStream, boolean) |  | 100% |  | 100% | 0 | 3 | 0 | 7 | 0 | 1 |
| RubyHash(Ruby, IRubyObject, int) |  | 100% | | n/a | 0 | 1 | 0 | 8 | 0 | 1 |
| inspectHash19(ThreadContext) |  | 100% | | n/a | 0 | 1 | 0 | 7 | 0 | 1 |
| createHashClass(Ruby) |  | 100% | | n/a | 0 | 1 | 0 | 8 | 0 | 1 |
| RubyHash(Ruby, RubyClass) |  | 100% | | n/a | 0 | 1 | 0 | 8 | 0 | 1 |
| RubyHash(Ruby, IRubyObject) |  | 100% | | n/a | 0 | 1 | 0 | 8 | 0 | 1 |
| fetch(ThreadContext, IRubyObject, IRubyObject, Block) |  | 100% |  | 100% | 0 | 4 | 0 | 9 | 0 | 1 |
| RubyHash(Ruby, boolean) |  | 100% | | n/a | 0 | 1 | 0 | 7 | 0 | 1 |
| select19(ThreadContext, Block) |  | 100% |  | 100% | 0 | 2 | 0 | 5 | 0 | 1 |
| merge_bang19(ThreadContext, IRubyObject, Block) |  | 100% |  | 100% | 0 | 2 | 0 | 7 | 0 | 1 |
| values_at(ThreadContext, IRubyObject[]) |  | 100% |  | 100% | 0 | 2 | 0 | 4 | 0 | 1 |
| delete(ThreadContext, IRubyObject, Block) |  | 100% |  | 100% | 0 | 3 | 0 | 5 | 0 | 1 |
| keep_ifCommon(ThreadContext, Block) |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| select_bang(ThreadContext, Block) |  | 100% |  | 100% | 0 | 3 | 0 | 2 | 0 | 1 |
| assoc(ThreadContext, IRubyObject) |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| rassoc(ThreadContext, IRubyObject) |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| internalKeyExist(RubyHash.RubyHashEntry, int, IRubyObject) |  | 100% |  | 100% | 0 | 5 | 0 | 2 | 0 | 1 |
| delete_ifInternal(ThreadContext, Block) |  | 100% | | n/a | 0 | 1 | 0 | 5 | 0 | 1 |
| alloc() |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| fastASetCheckString(Ruby, IRubyObject, IRubyObject) |  | 100% |  | 100% | 0 | 3 | 0 | 4 | 0 | 1 |
| hash19() |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| reject_bangInternal(ThreadContext, Block) |  | 100% |  | 100% | 0 | 2 | 0 | 4 | 0 | 1 |
| keep_if(ThreadContext, Block) |  | 100% |  | 100% | 0 | 2 | 0 | 4 | 0 | 1 |
| default_value_get(ThreadContext, IRubyObject) |  | 100% |  | 100% | 0 | 2 | 0 | 3 | 0 | 1 |
| each19(ThreadContext, Block) |  | 100% |  | 100% | 0 | 2 | 0 | 1 | 0 | 1 |
| each_pair(ThreadContext, Block) |  | 100% |  | 100% | 0 | 2 | 0 | 1 | 0 | 1 |
| setComparedByIdentity(boolean) |  | 100% |  | 100% | 0 | 2 | 0 | 4 | 0 | 1 |
| to_h(ThreadContext) |  | 100% |  | 100% | 0 | 2 | 0 | 1 | 0 | 1 |
| each_pairCommon(ThreadContext, Block, boolean) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| each_key(ThreadContext, Block) |  | 100% |  | 100% | 0 | 2 | 0 | 1 | 0 | 1 |
| delete_if(ThreadContext, Block) |  | 100% |  | 100% | 0 | 2 | 0 | 1 | 0 | 1 |
| reject(ThreadContext, Block) |  | 100% |  | 100% | 0 | 2 | 0 | 1 | 0 | 1 |
| reject_bang(ThreadContext, Block) |  | 100% |  | 100% | 0 | 2 | 0 | 1 | 0 | 1 |
| get(Object) |  | 100% |  | 100% | 0 | 2 | 0 | 2 | 0 | 1 |
| default_value_set(IRubyObject) |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| op_aref(ThreadContext, IRubyObject) |  | 100% |  | 100% | 0 | 2 | 0 | 1 | 0 | 1 |
| iteratorVisitAll(RubyHash.Visitor) |  | 100% | | n/a | 0 | 1 | 0 | 5 | 0 | 1 |
| internalIndex(ThreadContext, IRubyObject) |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| invert(ThreadContext) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| internalDelete(IRubyObject) |  | 100% |  | 100% | 0 | 2 | 0 | 2 | 0 | 1 |
| has_key_p(IRubyObject) |  | 100% |  | 100% | 0 | 2 | 0 | 1 | 0 | 1 |
| hasValue(ThreadContext, IRubyObject) |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| key(ThreadContext, IRubyObject) |  | 100% |  | 100% | 0 | 2 | 0 | 2 | 0 | 1 |
| replace19(ThreadContext, IRubyObject) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| default_proc() |  | 100% |  | 100% | 0 | 2 | 0 | 1 | 0 | 1 |
| rb_clear() |  | 100% |  | 100% | 0 | 2 | 0 | 5 | 0 | 1 |
| put(Object, Object) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| empty_p() |  | 100% |  | 100% | 0 | 2 | 0 | 1 | 0 | 1 |
| index19(ThreadContext, IRubyObject) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| containsKey(Object) |  | 100% |  | 100% | 0 | 2 | 0 | 1 | 0 | 1 |
| op_aset(ThreadContext, IRubyObject, IRubyObject) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| each_valueCommon(ThreadContext, Block) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| each_keyCommon(ThreadContext, Block) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| dup(ThreadContext) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| rbClone(ThreadContext) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| remove(Object) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| internalDeleteEntry(RubyHash.RubyHashEntry) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| fastDelete(IRubyObject) |  | 100% |  | 100% | 0 | 2 | 0 | 1 | 0 | 1 |
| hasDefaultProc() |  | 100% |  | 100% | 0 | 2 | 0 | 1 | 0 | 1 |
| isComparedByIdentity() |  | 100% |  | 100% | 0 | 2 | 0 | 1 | 0 | 1 |
| allocFirst() |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| allocFirst(int) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| internalPut(IRubyObject, IRubyObject, boolean) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| enumSizeFn() |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| has_value_p(ThreadContext, IRubyObject) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| merge(ThreadContext, IRubyObject, Block) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| op_aset(IRubyObject, IRubyObject) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| try_convert(ThreadContext, IRubyObject, IRubyObject) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| RubyHash(Ruby, int) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| rejectInternal(ThreadContext, Block) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getCompareByIdentity(ThreadContext) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| newSmallHash(Ruby) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| RubyHash(Ruby) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| MRIBucketIndex(int, int) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| internalPut(IRubyObject, IRubyObject) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| rb_size() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| op_equal(ThreadContext, IRubyObject) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| op_eql19(ThreadContext, IRubyObject) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| sort(ThreadContext, Block) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| merge_bang(ThreadContext, IRubyObject, Block) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getCompareByIdentity_p(ThreadContext) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| keySet() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| entrySet() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| directEntrySet() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| newHash(Ruby) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| internalGet(IRubyObject) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| visitAll(RubyHash.Visitor) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| fastASet(IRubyObject, IRubyObject) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| initialize_copy19(ThreadContext, IRubyObject) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| replace(ThreadContext, IRubyObject) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| MRIHashValue(int) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| bucketIndex(int, int) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| modify() |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| to_s19(ThreadContext) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| fastARef(IRubyObject) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| hashValue(int) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| checkResize() |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| getIfNone() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| size() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getNativeClassIndex() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| to_hash() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| convertToHash() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |