This is a minor point, but the return statement below is redundant because the native Array.forEach implementation has no return value, and if it did have a return value, then it would not be consistent with the non-native implementation which doesn't have the return statement.

As a side note, I'm not sure why the native implementation doesn't return the array. It would be nice if it did, then we would be able to chain forEach.

Ext.Array.forEach could also return the array, but then the api would not be conformant with the native api.

ExtArray = Ext.Array = {
    forEach: supportsForEach ? function(array, fn, scope) {
        return array.forEach(fn, scope); // <==== return not needed
    } : function(array, fn, scope) {
        var i = 0,
            ln = array.length;

        for (; i < ln; i++) {
  , array[i], i, array);