Releases: elixirscript/elixirscript
Releases · elixirscript/elixirscript
Release list
0.15.0
- Enhancements
alias,require, andimportnow work inside lexical scopes__ENV__and__CALLER__are now supported- Some of the standard library originally written in JavaScript has been rewritten
in Elixir. - Added
JS.import/1,JS.typeof/1,JS.instanceof/1, andJS.global/1 - Added support for multi alias/require/imports statements
- Generated JavaScript export statements are now default exports
- When output is sent to standard out, there are now markers to specify where
each module begins as well as what the file name would be.
For the end of a file,//:ENDFILEis used. For the file name,//<file>:ENDFILENAME
is used where<file>is the name of the file
- Breaking
compile,compile_path, andcompile_quotedopts parameter now expects a map- The
stdlibcompiler option is nowcore. Thestdlib_pathcompiler options is now
core_path
0.14.1
0.14.0
-
Breaking
- Renamed
ex2jstoelixirscript. This effects the escript as well as the
mix task
- Renamed
-
Enhancements
- Structs are now translated into classes
- Structs and Tuples now match on their types
- Can now match on JavaScript classes. Works just like matching on structs:
def my_func(%HTMLElement{id: "myId"})
- Can now implement protocols using JavaScript types
defimpl MyProtocol, for: HTMLElement
- Added virtual-dom JavaScript library
- Added ElixirScript.Html module for defining a virtual-dom tree
- Added ElixirScript.VDom module for manipulating the virtual-dom tree created
using the ElixirScript.Html module - Added ElixirScript.View module for handling view state and rendering virtual-dom
- Added
stdlib_pathcompiler option to specify the es6 path to the standard library.
If used, elixir.js will not be exported with the compiled modules - Moved non-elixir JavaScript code into
corees6 module. This will hopefully
make it so ElixirScript Standard Library modules can be defined in Elixir soon.
0.13.0
- Enhancements
- Added
Basemodule with function: encode64, decode64, and decode64! - Added
Stringmodule - Added
Bitwisemodule - Added
Mapmodule - Added
MapSetmodule - Added
Setmodule - Protocol support
- Added
Collectable,Enumerable,Inspect,List.Chars, andString.Charsprotocols.
The only one currently being used in the Standard Library, however, is String.Chars
- Added
0.12.0
- Enhancement
- Updated tuple implementation. It's now a class.
- Replaced pattern matching library with custom one
- Added PostOffice. Only thing that current uses it is Agent
- Removed erlang.js. Moved data types to Kernel.SpecialForms
elsenow works for try expressions- for now works with
intofor lists
0.11.0
- Enhancement
importworks with all options- Added
JSmodule withnew,mutate,importmacros - All Standard libraries are rolled up into one elixir.js file and imported from that
- Added
Keywordmodule with functions,has_key?andget - Added
Agentmodule with functions,start,get,update, andget_and_update - Map keys are now correctly turned into their atom counterparts if atom keys are used
- Modules no longer export a default object
aliasnow translates to a namespace import unlessdefaultoption is given
- Breaking
Mutable.updatehas been replaced byJS.updatetranspile,transpile_quoted, andtranspile_pathare nowcompile,compile_quoted, andcompile_path
0.10.0
- Enhancements
- Added
envoption forElixirScript.transpileadding macros for compilation - Fixed
caseimplementation to addthisto call - Updated
Kernelmodule to translate some functions to it's JavaScript equivalent - Added
Loggerthat translates Logger functions to console
- Added