
Hi again; I took a short look, and I think this looks like a promising candidate. The things I'd miss the most at this point would be: one, splitting the project up into a library and a CLI interpreter, so that it can be embedded into a Haskell host application without further ado; two, putting it on hackage (minor concern right now, but if at any time I choose to publish my project, I don't want to depend on anything that's not readily available through cabal); and three, a tiny bit more documentation, or even just a few usage examples. I'd be willing to help out with either if you're interested. Cheers, Tobias On Sun, Dec 07, 2014 at 03:48:47PM +1000, Fabian Bergmark wrote:
I have been implementing an ECMA-262 (Javascript) interpreter over the last few weeks. I have been following http://www.ecma-international.org/ecma-262/5.1 and tried to keep my implementation as close to the specification as possible.
The code can be found here https://github.com/fabianbergmark/ECMA-262
So far I have implemented the core language, but has yet to write all the specification functions (Array.splice, String.substring etc.). Before I do this and release it on hackage, I would appreciate feedback on my implementation.
The issues I see at the time are:
* The parser is slow for deeply nested code * Strict mode is not implemented * Interpret.hs is ~ 6k lines * SubType.hs uses IncoherentInstances, and a better implementation would be nice. At the moment it works but for one case.
To test the code, install the cabal package and run ecma262 on a .js file. One host object, console.log is provided and prints to stdout.
Fabian Bergmark _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe