Javascript odd performance special in V8

Today I have written few line of JS and I was stunned.... Maybe I miss something but can't figure it out.

Situation is as follow. I have a function which is called twice (or even more times). The first execution of function is faster than following executions.

Code was tested in Node & Chrome (V8 engine)
Firefox is executing the code each time at fixed speed, which is quite slower than V8 Engines. Whatever different execution speed across the engines are not important. The question is about why function first execution is faster than others in V8.

Here is the code: (It can be copy/pasted in chrome console and you will see the result)

measureFunc starts off unoptimized. It gets hot very quickly so Crankshaft optimizes it and an OSR entry is performed (execution continues where it left off -- from the middle of the loop -- but on the newly optimized version of machine code). But for some reason shortly after that a speculative assumption is broken, causing a bailout (OSR exit to unoptimized, 'full' code).

And V8 doesn't try to recompile measureFunc again before the first call ends.
Probably because it already OSRed into optimized function and a speculative assumption failed, so it sees no point in eager retrying (I suppose. I don't know what heuristics are used exactly).

So most of the time the first call of measureFucntion is executed on the Full-compiler tier. And this full code doesn't seem to trigger GC while it's running in the loop. I don't know if it's intentional or a bug. It's a subject to a further investigation.

So yes, the first call execution is (mostly) unoptimized and the subsequent executions are optimized. But V8 doesn't decide to run the code slower. The first execution happens to be faster because the unoptimized code doesn't stop to trigger GC. And it makes real difference in this example, because the code is actually GC-intensive (due to a lot of heap number allocations with short life-time).