Add .run callback
Fix empty stack bug and add test
Quicker execution

Replaced .apply with fastApply
Replaced Array.prototype.slice with fastApply(Array)