Archive for April 2011
Note the Jint failed on several tests and those have a zero as result. Click on the image for full size.
We’ve still got a long way to go until we reach our goal (within 300% of V8), but it’s looking good so far!
Update: Here’s the total test score also
- John Gietzen for all his work on ECMA3 conformance whom without this would not have been possible
- Christian Knutsson for the awesome logo
- ECMA3 Conformance
- Added 5,500 ECMA3 conformance tests with over 30,000 assertions
- Major API refactoring moving all Module/Functions located in Api.fs to their appropiate classes in Core.fs instead
- Re-implemented the AST analyzer to make it single pass
- Re-implemented variable handling allowing for faster and easier compilation
- Removed the dependancy of Microsoft.Dynamic.dll for CLR4 projects
- Removed dependancy on FSKit
- Implemented the Date object
- Implemented the RegExp object
- Implemented missing functionality on String.prototype (match, split, search, replace)
- Implemented F# operators ? and ?
- Implemented F# operators for all common binary DLR expressions
- Implemented a Sputnik test suite runner, courtesy of John Gietzen
- Implemented a proper REPL console, available in the aptly named “REPL” project.
- Implemented dynamic invoke operators for calling IronJS functions with an unknown amount of arguments
- Implemented a new F# based lexer and parser which allows IronJS to drop the dependencies on Xebic.ES3.dll and Antlr.Runtime.dll
- Cleaned up and removed a lot of old/redundant code
- Renamed ObjectClass to “Schema” and split out the dynamic functionallity into it’s own DynamicSchema class
- Replaced the FunctionCompiler class with an F# function with the signature IronJS.FunctionObject -> System.Type -> #Delegate
- A lot of smaller improvements to code stability and readability
- Added debug constructs in big parts of the codebase that only gets compiled when the DEBUG flag is set
- Refactored several constructors in the IronJS.Ast.Tree union to be more obvious
- Unified error handling, so it all passes through IronJS.Error and its members