All Versions
42
Latest Version
Avg Release Cycle
33 days
Latest Release
2464 days ago

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 to copy_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. With Kernel.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 with JS.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
  • v0.15.0 Changes

    January 26, 2016

    โž• Added

    • __ENV__ and __CALLER__ are now supported
    • JS.import/1, JS.typeof/1,JS.instanceof/1, and JS.global/1
    • ๐Ÿ‘Œ Support for multi alias/require/imports statements

    ๐Ÿ”„ Changed

    • alias, require, and import 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, and compile_quoted opts parameter now expects a map
    • The stdlib compiler option is now core. The stdlib_path compiler options is now core_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 to elixirscript. 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.
  • v0.13.0 Changes

    October 26, 2015

    โž• Added

    • Base module with function: encode64, decode64, and decode64!
    • String module
    • Bitwise module
    • Map module
    • MapSet module
    • Set module
    • ๐Ÿ‘ Protocol support
    • โž• Added Collectable, Enumerable, Inspect, List.Chars, and String.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 with new, mutate, import macros
    • โž• Added Keyword module with functions, has_key? and get
    • Added Agent module with functions, start, get, update, and get_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 by JS.update
    • transpile, transpile_quoted, and transpile_path are now compile, compile_quoted, and compile_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 unless default option is given