Time-Travel Debugging for JavaScript/Node.js - Barr, Earl T.; Marron, Mark; Maurer, Ed; Moseley, Dan; Seth, Gaurav (FSE '16 Proceedings of the 2016 ACM International Symposium on the Foundations of Software Engineering, 2016)
Time-traveling in the execution history of a program during debugging enables a developer to precisely track and understand the sequence of statements and program values leading to an error. To provide this functionality to real world developers, we embarked on a two year journey to create a production quality time-traveling debugger in Microsoft's open-source ChakraCore JavaScript engine and the popular Node.js application framework.