Merge Sort copy pasta

copy pasta from Cracking the Coding Interview but I'm just trying to visualize it

by Augustus Yuan

HTML

<div id="debug-output">

</div>

CSS

code {
  display: block;
}

.inline {
  display: inline;
}

JavaScript

function logOut(output, inline) {
	var debugOutput = document.getElementById('debug-output');
  var codeElement = document.createElement('code');
  if (inline) codeElement.classList.add('inline');
  codeElement.innerHTML = (output);
  debugOutput.appendChild(codeElement);
}

function mergeSort(arr) {
  var helper = [];
  return mergeSortHelper(arr, [], 0, arr.length-1);
}

function mergeSortHelper(arr, helper, low, high, stringLvl) {
  if (low < high) {
    var mid = Math.floor((low + high)/ 2);
  	var leftSort = mergeSortHelper(arr, helper, low, mid);
    var rightSort = mergeSortHelper(arr, helper, mid+1, high);
    return merge(arr, helper, low, mid, high);
  }
}

function merge(arr, helper, low, mid, high) {
  for (var i=low; i <= high; i++) {
    helper[i] = arr[i];
  }

  var helperLeft = low;
  var helperRight = mid + 1;
  var current = low; // start on the low and work out way up
  while (helperLeft <= mid && helperRight <= high) {
    if (helper[helperLeft] <= helper[helperRight]) {
    	arr[current] = helper[helperLeft];
      helperLeft++;
    } else {
      arr[current] = helper[helperRight];
      helperRight++;
    }
    current++;
  }
  
  var whatsLeft = mid - helperLeft;
  for (var i=0; i<=whatsLeft; i++) {
    arr[current+i] = helper[helperLeft+i];
  }
  logOut(arr);
  return arr;
}

logOut(mergeSort([4,13,3,2,6,7,8]));