Flattening nested arrays (review my solution)

are there any downsides to my solution to flattening nested arrays

function steamrollArray(arr) {
  if (arr.length == 0) return [];
  let c = arr.shift();

  if (typeof c == "object") {
    if (c instanceof Array == false) return [c, ...steamrollArray(arr)];
    return [...steamrollArray(c), ...steamrollArray(arr)];
  } else {
    return [c, ...steamrollArray(arr)];
  }
}

let c = steamrollArray([1, {}, [3, [[4]]]]);
console.log(c);