This is a note in reply to Victor Felder’s question who asked me what “Unsupported phi use of arguments” Crankshaft bailout means. What Crankshaft is trying to do is to completely avoid allocating arguments object when you write the code like this: function foo() { var sum = 0; for (var i = 0; i < arguments.length /* (1) */; i++) { sum += arguments[i]; /* (2) */ } } If one compiles this code naive