In Chrome and Node, the following code throws an error:
function noop() {}
var a = new Array(1e6)
// Array[1000000]
noop.apply(null, a)
// Uncaught RangeError: Maximum call stack size exceeded
I understand why it might be a Bad Idea to pass 1 million arguments to a function, but can anyone explain why the error is Maximum call stack size exceeded instead of something more relevant?
(In case this seems frivolous, the original case was Math.max.apply(Math, lotsOfNumbers), which is a not-unreasonable way of getting the max number from an array.)