public RubyArray mapObjectLinkedHashMap(VirtualFrame frame, RubyHash hash, RubyProc block) {
notDesignedForCompilation();
final LinkedHashMap<Object, Object> store = (LinkedHashMap<Object, Object>) hash.getStore();
final RubyArray result = new RubyArray(getContext().getCoreLibrary().getArrayClass());
int count = 0;
try {
for (Map.Entry<Object, Object> entry : store.entrySet()) {
if (CompilerDirectives.inInterpreter()) {
count++;
}
result.slowPush(yield(frame, block, entry.getKey(), entry.getValue()));
}
} finally {
if (CompilerDirectives.inInterpreter()) {
((RubyRootNode) getRootNode()).reportLoopCountThroughBlocks(count);
}