Jsish


JavaScript Interpreter SHell is a scripting language designed for use in embedded systems.
It is a language used primarily by applications written in C or C++ using GNU tool-chains.
MinGW provides Windows compatibility.
Jsi code compiles as either C99 or C++, with the C++ support being native instead of "extern C".

History

Jsi was created as an embedded application replacement for Tcl and JimTcl.
Its main goal is to provide embedded scripting using a mostly standard syntax, as opposed to the idiosyncratic ones used in Tcl, Lua, and Python.
A secondary goal is data compatibility with Web browsers using JSON.
Speed is not a major goal.
Life for Jsi started as a fork of the quad-wheel interpreter.
Eventually, most of the major internal features of Tcl were added.
The current implementation is nearly 10 times the size of the original, and very little of the original code remains.

Features

Jsi comes with builtin support for SQLite, WebSocket, and self-hosting ZIP file-systems.
The jsish executable is unusual in that it integrates a self-mounting file system containing builtin utilities and applications.
These include Debugger and Web-Server; the latter is used to provide web user-interfaces for Debugger and SQLite.
Each of these applications can be accessed via jsish command-line arguments.
Jsi is highly independent:
Scripts and extensions are unusually robust due to functions that support duck typed-parameters.
The implementation is mature and has a rich and resilient development environment that
includes integrated logging, asserts and strict mode.
As of version 2.4, released in December 2017, Jsi is considered to be feature-stable.

ECMAScript

Jsi implements version 5.1. of the ECMAScript standard, with the following deviations:
There is one major extension: function definitions can use types and defaults.