I was using count as the number of points but now that you mention it, it array elements rather than points, right? So maybe this is better:

    count: Math.min( positions.length, indices.length*3 ),

and then iterate through
    var end = start + count/3;
    for ( var i = start; i < end; i++ ) {

?

I'm using Math.min() because if there are 60 elements in position (=20 points) but only 10 indices, then I'm testing the 10 indexed points rather than the 20 points. 
Doesn't the mesh ray test exceed the boundaries of the indices array, if the number of indices is less then the number of points and no offset is given?