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.)