マージソートのrosettacodeページで、javaScriptの例には次の機能があります。
1 function merge(left,right,arr){
2 var a=0;
3 while(left.length&&right.length)
4 arr[a++]=right[0]<left[0]?right.shift():left.shift();
5 while(left.length)arr[a++]=left.shift();
6 while(right.length)arr[a++]=right.shift();
7 }
4行目で何が起こっているのか誰か説明してもらえますか?