I want to post here my newest project named BESEN. BESEN is an acronym for "Bero's EcmaScript Engine", and it is a complete ECMAScript Fifth Edition Implemention in Object Pascal, which is compilable with Delphi >=7 and FreePascal >= 2.5.1 (maybe also 2.4.1).

BESEN is licensed under a RubyLike+AGPLv3 dual-license.

Features:

  • Complete implementation of the ECMAScript Fifth Edition standard
  • Own bytecode-based ECMA262-complaint Regular Expression Engine
  • Incremental praise/exact mark-and-sweep garbage collector
  • Unicode UTF8/UCS2/UTF16/UCS4/UTF32 support (on ECMAScript level, UCS2/UTF16)
  • Compatibility modes, for example also a facile JavaScript compatibility mode
  • Bytecode compiler
  • Call-Subroutine-Threaded Register-based virtual machine
  • Context-Threaded 32-bit x86 Just-in-Time Compiler (x64/AMD64 JIT is in the work and a ARMv7 EABI JIT for ARM CPUs with VFPUv1 instruction set is planned)
  • Constant folding
  • Dead code elimination
  • Abstract-Syntax-Tree based optimizations
  • Type inference (both exact and speculative)
  • Property Inline Cache
  • Perfomance optimized hash maps
  • Self balanced trees (for example to sort on-the-fly linked list items of hash maps for very fast enumeration of array objects)
  • Easy native ObjectPascal class integration (properties per RTTI and published methods per by-hand-parsing of the native virtual method table)


And here is the link to BESEN: http://besen.sourceforge.net/

Have fun with it

EDIT: Moved to SF.NET