I created on jsperf.com test for 3 sorting methods: Bubble, Insertion and Merge. Link
Before test I create unsorted array with random number from 0 to 1Mln. Each time test shows that Insertion sort faster than Merge one. What's reason for such result, if Merge sort time O(n log(n)) while Insertion and Bubble sorts have O(n^2) test result here
Without more testing, a tentative answer:
Your insertion sort is fairly optimised - you are only switching elements. Your merge sort instantiates new arrays using
[], and creates new arrays usingsliceandconcat, which is a large memory-management overhead, not to mention thatconcatandslicehave implicit loops inside them (although in native code). Merge sort is efficient when it is done in-place; with all the copying going on, that should slow you down a lot.