Embedthis Ejscript Preview 0.9.3

Release Status

This release is a preview release to provide developers a chance to evaluate Ejscript language and to provide testing prior to production release. This status will not attempt to provide an exhaustive list of differences to the standards. Rather, it is an overview of the major features implemented and outstanding.

Ejscript is still under active development. Some features are incomplete and compliance with the ECMAScript 262 standard is lacking in a couple of areas. Major areas of current work include: ES-262 compliance, prototype inheritance unicode and runtime type checking.

Version 0.9.3 — October 2008

This release of Ejscript implements most of ECMA-262, ECMA-357 and the proposed ECMAScript Edition 4 standard. The release concludes our major push on performance. The VM byte codes have been revised and optimized, object allocations have been streamlined and memory footprint has been dramatically improved. As a result Ejscript now runs in a very small memory footprint with excellent performance characteristics.

Major work was conducted in the following areas:

Key Changes:

  • Garbage collector changed to a non-compacting, generational mark and sweep with pooled object allocations
  • New hierarchical virtual memory allocator offering areana and slab memory allocation services
  • VM Byte codes optimized for direct access and early binding
  • Object memory layout optimized and compacted
  • Class library extended with enhancements for Date, Regular expressions and other types
  • SQLite API
  • Start of a "Rails" like ORM layer for SQL database access
  • Simple reflection API
  • More unit tests

Current Implemented features:

  • Statements and expressions
  • Classes and Objects
  • Types, type annotations
  • Namespaces
  • let, const 
  • Block scope
  • Iteration and enumeration
  • Core Types and Values: Array, Boolean, ByteArray, Date, Error, Function, Iterator, Null, Number, Object, String, Type, Void, XML, XMLList
  • Global object and global functions
  • Library types: File
  • Events, Timers
  • Regular expressions
  • Modules files
  • Programs: Ejscript shell, stand-alone compiler, stand-alone C VM, documentation generator, assembler listing
  • Strict and standard mode
  • Conditional compilation

Incomplete and Partially Incomplete Features

  • Prototype inheritance
  • type keyword
  • parametric types
  • cast, is operators
  • operator overloading
  • like
  • structural types
  • interfaces
  • Name, Namespace
  • Unicode. Strings are currently binary strings capable of storing UTF-8 only.
  • XML and XMLList utility methods

© Embedthis Software LLC, 2003-2008. All rights reserved. Embedthis, Ejscript and Appweb are trademarks of Embedthis Software LLC.