Files
SpeedScope/sample/programs/javascript/recursion.js
2018-08-08 17:15:33 -07:00

42 lines
552 B
JavaScript

function alpha(depth) {
if (depth > 15 * Math.random()) {
return
}
beta(depth + 1)
delta()
gamma()
}
function beta(depth) {
alpha(depth + 1)
for (let i = 0; i < 10; i++) {
gamma()
}
}
function delta() {
for (let i = 0; i < 10; i++) {
gamma()
}
}
function gamma() {
let prod = 1
for (let i = 1; i < 1000; i++) {
prod *= i
}
return prod
}
function main() {
for (let i = 0; i < 100; i++) {
alpha(0)
}
}
console.profile('recursion')
main()
setTimeout(() => {
console.profileEnd('recursion')
}, 0)