Step-by-step JavaScript interpreter, written in JavaScript
neil.fraser.name
Step-by-step JavaScript interpreter, written in JavaScript
1–10 of 12 posts
Re: Step-by-step JavaScript interpreter, written in JavaScript
#2This is terrific. I'd love a description of what the interpreter is actually doing at each step, perhaps optionally sent to the console. This could be a wonderful tool for teaching how JavaScript works.
Re: Step-by-step JavaScript interpreter, written in JavaScript
#3Cool project, but the title initially lead me to believe this was a tutorial on building a JavaScript interpreter. :(
Re: Step-by-step JavaScript interpreter, written in JavaScript
#4I think itd be cool to see the tokenization happen as you step through it. The highlighting is a great step in helping understand the process.
Re: Step-by-step JavaScript interpreter, written in JavaScript
#5Wait a minute, how does this interpreter allow multi-threaded execution without web workers?
Re: Step-by-step JavaScript interpreter, written in JavaScript
#6Cool project, but the title initially lead me to believe this was a tutorial on building a JavaScript interpreter. :(
There's on in the project on github that looks like it's originally from Google. You can probably find docs specifically on it (and it looks like the source is well documented).
Re: Step-by-step JavaScript interpreter, written in JavaScript
#7Wait a minute, how does this interpreter allow multi-threaded execution without web workers?
Thread switching? Multi-threaded just means it allows concurrent threads; they're not necessarily parallel: https://talks.golang.org/2012/waza.slide
Re: Step-by-step JavaScript interpreter, written in JavaScript
#8Wait a minute, how does this interpreter allow multi-threaded execution without web workers?
It uses a small-step interpreter [1]. Rather than capturing the interpreter's state on the native call stack, small-step interpreters explicitly model said state using stacks of objects - one per active AST node - and environments. Because they're no longer bound to the stack of the implementation language, execution may be cycled, paused and resumed at will.
[1] http://matt.might.net/articles/writing-an-interpreter-substi...
Re: Step-by-step JavaScript interpreter, written in JavaScript
#9We finally have a substitute for eval within Chrome extensions! Also could be useful for experiments e.g. simulating synchronous APIs.
Re: Step-by-step JavaScript interpreter, written in JavaScript
#10This is great. I also implemented a JS stepping interpreter in JS [1] but using a different approach. I let the host JS environment do parsing and evaluation. I just use generators to pause executions and then pass the code through a ES6 generator transpiler[2]. See the demo[3].
[1] http://amasad.me/2014/01/06/building-an-in-browser-javascrip... [2] https://github.com/facebook/regenerator [3] http://debugjs.com/#example