Complete ECMAScript Fifth Edition implementation in Object Pascal with JIT compilation and garbage collection.
BESEN (Bero's ECMAScript Engine) is a complete implementation of the ECMAScript Fifth Edition (ES5) standard written in Object Pascal. It provides a standards-compliant JavaScript engine that can be embedded into Delphi and Free Pascal applications, enabling script execution capabilities within native Object Pascal projects. The engine focuses on balancing standards compliance with practical performance optimizations for integration with Object Pascal environments.
Delphi and Free Pascal developers who need to embed a JavaScript/ECMAScript engine into their native Object Pascal applications to add scripting capabilities. This includes developers building applications that require user scripting, plugin systems, or configuration via scripts.
Developers choose BESEN because it is a complete, high-performance ES5 implementation specifically designed for Object Pascal environments, offering easy integration of native Object Pascal classes via RTTI and virtual method table parsing. It provides a unique combination of standards compliance, performance optimizations like a JIT compiler and garbage collector, and seamless integration with Delphi and Free Pascal toolchains.
Complete ECMAScript Fifth Edition Implemention in Object Pascal
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Implements the full ECMAScript Fifth Edition standard, ensuring reliable script execution for ES5-compliant code, as stated in the README's features list.
Includes a JIT compiler, garbage collector, and AST-based optimizations like constant folding, which enhance execution speed for embedded scripts, detailed in the features.
Allows easy integration of native Object Pascal classes via RTTI and virtual method table parsing, facilitating bidirectional communication between Pascal and JavaScript.
Supports multiple Unicode encodings (UTF8, UCS2, UTF16, etc.) at the ECMAScript level, enabling internationalization in scripts, as highlighted in the features.
Limited to ES5, missing modern features like promises, arrow functions, and let/const, which are standard in contemporary JavaScript development.
Exclusively designed for Object Pascal environments (Delphi/Free Pascal), making it unsuitable for projects using other programming languages or frameworks.
As noted in the hints, ES3 code may run slower in this ES5 engine, and strict mode is recommended for better performance, indicating potential optimization trade-offs.