Quick Nav
- Release 1.1.3
- Release 1.1.2
- Release 1.1.1
- Release 1.1.0
- Release 1.0.2
- Release 1.0.1
- Release 1.0.0
- Release 1.0.0.B3
- Release 1.0.0.B2
- Release 1.0.0.B1
See Also
Ejscript Change Log
This change log chronicles the features and fixes in each Ejscript release.
See the Ejscript issue database for full details of fixes.
Changes in 1.1.3
Key Fixes
- Fixes for building for VxWorks on linux
- Add SSL_OP_NO_TICKET and SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION
- Enable no free threads message to continually be emitted
- Fix Allow HTTP method reporting TRACE being enabled
Changes in 1.1.2
Key Fixes
- Fix parsing XML documents with zero length attributes.
- Initialize blank ejs byte code areas
- Fix Array.sort order
- Fix doc for Date.year
- Fix setCookie
- Fix MVC apps with caselessmatch for URI extensions
- Fix multiply defined target rules when building with latest GNU make
- Fix warnings in Xcode about OpenSSL
- Add System.kill
- Updates when searching for /bin/sh in Cmd
- Fix session memory leaks
- Fix windows module search path
- Fix property search strategy
- Fix quotes on etag in Http
- Update Http Cache-Control header
- Fix min-threads limit
- Fix Install on Cygwin directories
- Fix gcc compiler warnings
- Fix mixed makefile targets for new gnu make
- Fix access to ejs pages inside mvc apps
Changes in 1.1.1
Key Fixes
- Fixed Http HEAD requests
- Support for huge files > 2GB
Changes in 1.1.0
Key Fixes
- Update date documentation
- Array.slice with negative indicies
- Formatted printing of floating point numbers
- Date/Time calculations for pre 1970 dates
- Cygwin Math.pow Infinity results
- Allow JSON encoded arrays in Http form data
- Bad timezone on HTTP headers in certain locales
- Exception stack management
- Memory fragmentation
- Http not-modified calculations
- Parsing XML characters > 127
- GC issue with new Function()
- Update tool search support for Windows 7 and VS 10.X
- View checkbox
- Array.concat
- Memory exception assert
- Building with configure --disable-all
- Add missing msvcrt version 10 DLL to windows package
- Path.extension() and extension() for directories with embedded periods
- Escape(quote)
- Compiler spin with }; construct
- Ejscript: XSS issue with embedded script in URLs - thanks Gjoko Krstic at Zero Science Lab
API Changes
- None
Changes in 1.0.2
Minor Features
- Solaris and FreeBSD ports
- Http request and response body tracing
Key Fixes
- Freeing memory on exiting ejs and ejsc. (Fix to mprFree(mpr))
- Path.mimeTypes
- for unicode constants in strings
- Date fixes for dates outside 2038 and prior to 1970
- PPC encoding of floating point numbers in module files
- linking in uClinux
- Documentation updates
- Debian package improvements
API Changes
- None
Changes in 1.0.1
Key Fixes
- Math.random()
- String.caseCompare
- WebServer IPv6 addresses
- WebServer timedout requests
- Windows delimiters in Path class
- Build fixes for va_list
- Documentation corrections
- Fix for loading modules on ARM systems
API Changes
- None
Changes in 1.0.0
Fixes
- TextStream.read when last line has no line terminator
- Module loading when module filenames have a "."
- Http with credentials
- Web page reload when using System.cmd for command execution
- Optimize make install and make package when used with svn
- Path.find was not handling nested directories correctly
- XML node update issues
- Number.toString() for typed variable declarations
- Enhanced Math, Number and Date classes
- Improved documentation
- Improved configuration and searching for build components
- XML.toJSON()
- trailing comma in JSON (IE fix)
- diagnostics for configure with verbose mode
- JSON parsing and encoding
- html() escaping
- parsing XML literals
- ByteArray.copyin with negative count
- Config properties to be boolean
API Changes
- Path.extension changed to trim "."
Changes in 1.0.0 Beta 3
Fixes
- Dependency checking when building
- Iteration in for statements inside Constructors
- Strict equality testing with null and undefined
Changes in 1.0.0 Beta 2
Major New Features
- Versioned modules. Added versions to module and require language directives. Loader will load required versions and intelligently load the most recent qualifying module.
- Support side-by-side loading of multiple versions of the same module.
- Support Web Workers. The Worker class can be used to create new interpreter instances in dedicated worker threads..
- New unit test suite manager (utest). Expanded unit tests.
Minor Features
- Module files have checksums. Loading stale modules will thow an error
- Optimize code generation
- Added eval() function
- Auto rebuild application if a new Ejscript version is installed
- Auto rebuild App.mod if App.src changes
Fixes
- library and module search paths and module resolution
- Improved ECMA standard compliance
- Error.stack property
- Hybrid type slot binding
- configure --disable-all
- JSON serialization and deserialization issues
- Http.upload with non-simple paths
- Remove namespace decorations from JSON strings
- Building with ./configure --static
- Path + String operations. Now casts Path to String
- Building ./configure --disable-db
- Compiling with ejsweb compile all. Was missing views. Thanks Damien.
- Optimize memory footprint.
- Partial support execution from ROM (not all features operational).
- some parser asserts
API Changes
- Added Path.find
- Modified Path.remove to remove empty directories
- Removed Path.removeDir to remove directories
- Added Path.removeAll to remove directories with contents
- Added find() in ejs.sys
- Change property Record.numRows to method Record.getNumRows()
- Change property Record.columnNames to method Record.getColumnNames()
- Change property Record.db to method Record.getDb()
- Change property Record.keyName to method Record.getKeyName()
- Change property Record.tableName to method Record.getTableName()
Changes in 1.0.0 Beta 1
Major New Features
- File Upload
- Faster Generational Garbage Collector
- Optimized memory footprint
- Multi-threaded support. Multiple interpreters can execute in their own thread.
- Shared master interpreter across multiples thread.
- Enhanced Http class supporting forms, file upload, HTTP chunking and SSL.
- Socket class.
- Cygwin platform support.
Minor Features
- Enhanced namespace language support
- Fully relative URLs to support running behind a reverse proxy
- Ability to import the Ejscript runtime and snapshot for each application
- Webserver updates
- Add EjsPath for setting module search path in Appweb.conf
- Add --search to ejsweb for setting module search path
- Added memory redline callback handling and Memory exceptions
- Optimized memory usage, reduced footprint
- Enhanced module search path controls.
- New unit test framework "utest".
Fixes
- SSL protocol support for the Http class
- Support for unchecked checkboxes
- Module search path handling
- Nested try/catch inside functions
- Use of iterations inside finally blocks
- TextStream dropping bytes
- File upload
- Chunked transfer encoding for input and output
- FileUploadSize
- Http.secure property
- GC issue for collecting frames
- Ejsweb error reporting
- Issue with using default args before a rest arg
- Call expressions split over multiple lines
- JSON encoding
- SQL quoting
- Compiler warning fixes
- Regular expression doc
- TextStream.ReadLines on windows and other platforms
- TextStream reader
- File.size for open files
API Changes
- Modified Native APIs
- mprStart. Removed flags parameter
- Http and Socket classes have new methods and signatures
- Record class supports hasOne, hasMany. The find and findAll methods have new and better defined options
- Stream.read() API definition. Offsets are now by default 0.
Changes in 0.9.9
Major Features
- VxWorks support
- Windows CE support
- Cross compilation support
- Enhanced File I/O and Path support
- Add support for ECMA-262 prototype based inheritance
- Improve compliance with ECMA libraries
- Enhance web MVC framework. Database ORM now supports associations.
- Enhance web dynamic table control. Now supports column sorting and dynamic data updates.
Minor Features
- Added ejs -f -s switches for compatibility with SpiderMonkey shell
- Added App.outputStream, errorStream, inputStream
- Added input(), output() global methods
- Enhanced print() to serialize objects
- Added stable, dev and default branches to Mercurial repository
- Windows CE port
- Support for MAC 10.4 and MAC PPC targets
- Support for OpenWrt platform
- Simplified build output with make TRACE=1 verbose option
- Added literal getters and setters
- Optimize blocks by adding hoisting of block scope objects
- Improved web framework app style sheet theme support
- Added generation of src/App.es for web frameworks
- Enhanced jQuery support for Ajax dynamic table updating
- Support degraded opertion if client's browser disables client-side JavaScript
Fixes
- Fixed "while(assignmentExpression)"
- Fixed toString and toJSON overriding
- Fixed several interpreter VM issues
- Fixed stack pop for typeof op code
- Fixed slot generation when using configure --shared
- Fixed select() event handling on Vxworks
- Fixed searching for ejs.mod in release tree with product installed
- Fixed several byte ordering issues in module files
- Fixed module search when running inside the VS debugger
- Fixed support for Debian Lenny
- Fixed Path comparison operations
- Fixed shared builds not being able to build samples or run ejsweb in some cases
- Fixed mixed type operations with strings and numerics
- Fixed web framework belongsTo, hasMany and hasOne relationships
- Fixed VM byte code comparison operations with null and casting rules
- Fixed VM property lookup to unbound private members
- Fixed some compiler parsing and code analysis issues
- Fixed return/break inside catch blocks
- Fixed closure creation
- Fixed a garbage collection bug
- Fixed HTTP form encoding. Support flattening nested objects
- Fixed JSON encoding and parsing. Add quotes in all cases
- Fixed compiler code generated for block-less if/then clauses. Was not clearing eval stack correctly
- Fixed cast of String to Boolean for empty strings
- Fixed XMLHttp open method setting uri
- Fixed namespace qualified property access
- Fixed property name clashes for views and database records with user defined properties
- Fixed Http.response to be able to be called multiple times
- Fixed checkboxes when unchecked. Was not defining params value
- Fixed XML parsing for CDATA
- Fixed JSON some parsing cases
- Fixed HTTP client when receiving HTTP 100 intermediate responses
API Changes
- App.exe renamed to App.exeDir
- print() serializes objects instead of toString
- Major refactor for: File, Path and FileSystem.
- Native C API refactoring for: MprFile, MprPath, MprFileSystem.
-
- Modified Native APIs
- mprErrorPrintf => mprPrintfError
- mprStaticErrorPrintf => mprStaticPrintfError
- mprAllocStrcat => mprStrcat. Removed delimiter.
- mprReallocStrcat now returns string
- mprAllocSprintf => mprAsprintf and now returns string
- mprAllocVsprintf => mprVasprintf and now returns string
- mprAllocStrcpy => removed
- mprSprintf now returns string and not length
- mprVsprintf now returns string and not length
- mprCreateStaticSpinLock => mprInitSpinLock
- mprAllocObject => mprAllocWithDestructor
- mprAllocObjectZeroed => mprAllocWithDestructorZeroed
- mprAllocMemcpy removed
- mprEscapeCmd, mprUrlEncode, mprUrlDecode, mprEscapeHtml all buffers and return strings
- mprGetAppPath, mprGetAppDir return string
- Most of mprFile APIs are renamed to mprPath
- MprFileSystem, MprFile, MprFileInfo refactored.
- MprFileInfo => MprPath
- Mpr.fileService => Mpr.fileSystem
- mprAccess => mprPathExists
- mprDelete and mprDeleteDir => mprDeletePath
- mprGetBaseName => mprGetPathBase
- mprGetDirName => mprGetPathDir
- mprGetExtension => mprGetPathExtension
- mprGetParentDir => mprGetPathParent
- mprGetDirList => mprGetPathFiles
- mprGetFileInfo => mprGetPathInfo
- mprGetAbsFile => mprGetAbsPath
- mprGetRelFile => mprGetRelPath
- mprCleanFilename => mprNormalizePath
- mprMakeTempFileName => mprGetTempPath
- mprGetFileDelimiter => mprGetPathSeparator
Changes in 0.9.8
Major Features
Minor Features
- Added Cross compilation byte ordering control. New ejsc switches --cross and --endian.
- Fix source code tabbing.
- Added error code to Error class.
- Documentation updates.
Fixes
- Fixed ejsweb migrations.
- Fixed ejsweb to be smarter when creating the web server command string. Now works for installed builds and from a debug tree..
- Fixed poor error message from ejsweb when if fails to run the web server
- Fixed 64 bit MD5 encodings.
- Fixed rendering empty ejs web pages.
- Fixed date unit tests.
- Fixed source distributions for windows. Was missing some VC project files and buildConfig.h.
- Fixed crash when loading custom native modules into the web framework
- Made ejsPath per interpreter
- Modified ejsCreate() API to take a search path argument
- Fixed parsing paths with ".."
Changes in 0.9.7
Major Features
- Added CGI gateway program (ejscgi).
- Added Appweb web server for local and proxied hosting.
- Added Apache reverse proxy support.
- Added Appweb in-memory module.
- Added model validations.
- Added database migrations.
- Added controller life-cycle filter hooks.
- Enhanced ejsweb generator. Added migration, model and scaffold generation. Also migrate application and running in-built web server.
- Added native JSON support.
- Added flash[] inter-action storage.
- Added jQuery support for Ajax and effects.
- Enhanced user controls.
- Added async form and async link support.
Minor Features
- Simplified building for cross-compilation.
- Documentation updates.
- Uninstall on MAC OS X.
- Improved ECMA-262 compliance: Added Function.apply() and Function.call().
- More documentation for the Web Framework.
- Added input view control for smart rendering based on data type.
- Added improved style sheets and themes for use by framework generator.
- Enhanced configure program to intelligently search for dependent components and packages.
- Added block-less function declarations. Can define functions without {} and return. The body is just a simple expression.
- Optimized ejsweb command to directly run pre-compiled byte code.
Fixes
- Renamed compiler from ec to ejsc.
- Renamed web generator from egen to ejsweb.
- Installation and removal fixes.
- Fixed cross compilation build system.
- Fixed setting of LD_LIBRARY_PATH when building cross.
- Fixed Mips compilation switches.
- Fixed System.run. Now uses inbuilt MprCmd instead of popen.
- Fixed native JSON encoding of null, undefined and \\.
- Several VM evaluation fixes.
- Fixed session encoding.
- Fixed cross-request preservation of flash[].
- Fixed textarea control.
- Fixed SQLite datatype mapping.
- Fixed serialize/deserialize. Fixed backquoting and embedded quotes.
- Moved modules to /usr/lib/ejs/modules and binaries to /usr/local/bin.
- Fixed compiler bug not warning when accessing instance properties from static code.
- Fixed property lookup to use all open namespaces in all blocks.
Changes in 0.9.6
Major Features
- Improved ECMA-262 compatibility.
- Added language compliance controls. Added --lang switches to the configure, ejs, and ec programs. Added "use lang" pragma directive for scripts.
- Extensive updates to the documentation. Especially in language and web framework guides.
Minor Features
- Added typeof operator.
- Added Number and Boolean function constructors.
- Added typeOf() global function for easily determing the type of an object.
- Made ejs support -f switch for compatibility with Mozilla test suites.
Fixes
- Fixed Reflect().typeName not returning correct results.
- Fixed String(number) constructor pattern. Updated doc.
- Fixed parser with typeof operator as the first input token.
- Cleanup error reporting in compiler.
- Fixed prefix and postfix operators on literals. Now warns appropriately.
- Fixed the "in" operator when searching in arrays or instance objects.
Changes in 0.9.5
Major Features
- Garbage collector changed to a non-compacting, generational mark and sweep with pooled object allocations.
- New hierarchical virtual memory allocator offering arena 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.
- Ejscript web framework for "rails" style server side JavaScripting.
- Simple reflection API.
- More unit tests.
- Interfaces including interfaces with bodies.
- Streams classes including TextStream, BinaryStream.
- Enhanced Http. Now supports SSL, authentication, chunked transfers and post data.
Minor Features
- Enhanced and debugged ByteArray class.
- Master interpreter and clone interpreter support.
- XMLHttp class.
- More documentation.
Fixes
- Improve error reporting for ec.
- Fixes for stack trace reporting on exceptions.
- Fixed garbage collection bug for array elements in some cases.
- Fixed some compiler crashes on illegal programs.
- Fixed some code generation issues.
Changes in 0.9.3
Major Features
- Major performance work for memory and CPU utilization.
- Extended Date, Array and String classes.
- Improved documentation.
- Extended suite of unit tests including load, benchmark and valgrind tests.
Minor Features
- Added open, close, read, write file I/O convenience routines. These wrap the more comprehensive File class capabilities.
- Completed the installation and removal packaging for major operating systems.
Fixes
- Continued push to drive quality higher using a continuous integration build farm.
Changes in 0.9.2
Major Features
- Added web ESP (rails-like) framework.
- Added SQLite support.
- Added RegExp regular expression class.
- Added Http client class.
- Added the with statement.
- Lots of bug fixes.
Minor Features
- Updated MPR portable runtime layer.
Fixes
- Too many to count.
Changes in 0.9.1
Major Features
- First-cut product documentation.
- Object, Array, String methods.
- ByteArray.
- ejs.io namespace including: File, BinaryStream, TextStream, IStream.
- Updated ejsmod to support namespaces as packages.
- Extended unit test suite.
- Lots of bug fixes.
Minor Features
- Increased unit test coverage.
Fixes
- Too many to count.
Changes in 0.9.0
Major Features
- Supporting catch (var: type).
- Supporting cast, to, instanceof, in with binary expressions.
- Namespaces including "use namespace" and "use default namespaces".
- Packages are removed in deference to namespaces.
- Added module blocks and "use module".
- Added iterator support for for/in, for each.
- New ejsmod program replaces old bun program. Handles listing, slot and doc generation.
- Ejsmod generates documentation based on javadoc style comments.
- Enhanced assembler listings.
- Improved code generation.
- Completed support for block scope.
- Closures and bound method capture.
- System library documentation.
- Object, Array and String library methods implemented.
- Support class settings.
- E4X support.
- ECMA compliance mode.
- Implemented type checking on function calls in the VM relieving native types of the burden.
- Added parameter type checking and type coercion on function calls.
- Implemented rest args (...rest).
Minor Features
- Increased unit test coverage.
- Code cleanup and refactoring.