All Versions
42
Latest Version
Avg Release Cycle
33 days
Latest Release
2464 days ago
Changelog History
Page 3
Changelog History
Page 3
-
v0.17.0 Changes
March 31, 2016โ Added
output
as an option for compiler functions. This controls whether output is returned as a list of tuples, send to stdout, or saved to a file path- ๐
:full_build
as an option for compiler functions and--full-build
option to CLI. These force the compiler to perform a full build --version
option to CLI. Outputs current version of elixirscript--std-lib
option to CLI. Takes a path and adds the stdlib to that path
๐ Changed
- Renamed
copy_core_to_destination
tocopy_stdlib_to_destination
- ๐ Incremental Compilation: ElixirScript will now only build files and modules that have changed since the last build
โ Removed
--core
option from CLI and:core
compiler option.
-
v0.16.0 Changes
February 27, 2016โ Added
- Bitstring pattern matching
- Bitstrings in for comprehensions
- Functions with catch, after, else clauses
with
special form- ๐ Pin operator in map keys and function clauses
- โ Added
Kernel.object/1
function to make it more natural to create a JavaScript object with string keys. Elixirscript, by default turns the following,%{a:"b"}
into{[Symbol.for("a")]: "b"}
in JavaScript. In order to get string keys, one would have to do%{"a" => "b"}
which turns into{a: "b"}
in JavaScript. WithKernel.object
, you can create string keyed maps conveniently,object(a: "b")
which turns into{a: "b"}
.
NOTE: when updating the created by, you still have to use the string form
%{ my_map | "a" => "c" }
โ Removed
- โก๏ธ
JS.update(object, property, value)
has been removed and replaced withJS.update(object, map)
. This allows you to update multiple values on a javascript object at once.
๐ Fixed
- Optional parameters should now work as expected
-
v0.15.2 Changes
February 21, 2016โ Addded
- ๐ Support for variables as map keys
๐ Fixed
- Protocol implementations for Integer and Float which where not recognized
- Calling properties on non-objects
-
v0.15.1 Changes
February 19, 2016โ Removed
- โ Removed
catch
as a javascript keyword to filter
๐ Fixed
- ๐ Fixed View module so that an element can have multiple elements within
- struct implementation so that lists of atoms for fields are compiled correctly
- head-tail pattern match to allow for more complicated scenarios
- ModuleCollector to properly alias inner modules
- ๐ Raise translation to properly translate when string messages are given
- โ Removed
-
v0.15.0 Changes
January 26, 2016โ Added
__ENV__
and__CALLER__
are now supportedJS.import/1
,JS.typeof/1
,JS.instanceof/1
, andJS.global/1
- ๐ Support for multi alias/require/imports statements
๐ Changed
alias
,require
, andimport
now work inside lexical scopes- Some of the standard library originally written in JavaScript has been rewritten in Elixir.
- 0๏ธโฃ 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,
//:ENDFILE
is used. For the file name,//<file>:ENDFILENAME
is used where<file>
is the name of the file compile
,compile_path
, andcompile_quoted
opts parameter now expects a map- The
stdlib
compiler option is nowcore
. Thestdlib_path
compiler options is nowcore_path
-
v0.14.1 Changes
December 07, 2015โ Removed
- .DS_Store and LICENSE from output
-
v0.14.0 Changes
December 06, 2015โ Added
- Can now implement protocols using JavaScript types
elixir defimpl MyProtocol, for: HTMLElement
- virtual-dom JavaScript library
- ElixirScript.Html module for defining a virtual-dom tree
- 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_path
compiler option to specify the es6 path to the standard library. If used, elixir.js will not be exported with the compiled modules
๐ Changed
- ๐ Renamed
ex2js
toelixirscript
. This effects the escript as well as the mix task - 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:
elixir def my_func(%HTMLElement{id: "myId"})
- ๐ Moved non-elixir JavaScript code into
core
es6 module. This will hopefully make it so ElixirScript Standard Library modules can be defined in Elixir soon.
- Can now implement protocols using JavaScript types
-
v0.13.0 Changes
October 26, 2015โ Added
Base
module with function: encode64, decode64, and decode64!String
moduleBitwise
moduleMap
moduleMapSet
moduleSet
module- ๐ Protocol support
- โ Added
Collectable
,Enumerable
,Inspect
,List.Chars
, andString.Chars
protocols. The only one currently being used in the Standard Library, however, is String.Chars
-
v0.12.0 Changes
September 23, 2015โ Added
- โ Added PostOffice. Only thing that current uses it is Agent
๐ Changed
- โก๏ธ Updated tuple implementation. It's now a class.
- Replaced pattern matching library with custom one
- ๐ Moved data types to Kernel.SpecialForms
else
now works for try expressions- for now works with
into
for lists
โ Removed
- โ Removed erlang.js.
-
v0.11.0 Changes
September 17, 2015โ Added
- โ Added
JS
module withnew
,mutate
,import
macros - โ Added
Keyword
module with functions,has_key?
andget
- Added
Agent
module with functions,start
,get
,update
, andget_and_update
๐ Changed
- Map keys are now correctly turned into their atom counterparts if atom keys are used
import
works with all options- โก๏ธ
Mutable.update
has been replaced byJS.update
transpile
,transpile_quoted
, andtranspile_path
are nowcompile
,compile_quoted
, andcompile_path
- All Standard libraries are rolled up into one elixir.js file and imported from that
- 0๏ธโฃ Modules no longer export a default object
- 0๏ธโฃ
alias
now translates to a namespace import unlessdefault
option is given
- โ Added