There's not really any way I can verify that this is the problem without a runnable example, but you probably have non-naturally-ordered values in your dimensions. You need to cast your dimension values and make sure that all your values are valid. The relevant section looks to be:
self.data.push({
index:index,
starttime:new Date(d.starttime),
sex:d.gender == '' ? 'Non-Subscriber' : d.gender,
value:d.count
})
I'd at least change this to:
self.data.push({
index:+index,
starttime:new Date(d.starttime),
sex:d.gender == '' ? 'Non-Subscriber' : '' + d.gender,
value:+d.count
})
The Date() could still be tripping you up if you have invalid d.starttime values, so if you are still getting the error you may want to try replacing it with just "new Date()".
Again, no guarantee that's causing your issue, but when I get these recursion errors, this is usually the cause.