2020-11-30
- Project converted to TypeScript using tsdx
- Exports cjs and esm modules
- Types are now available which should provide better Intellisense
- Requires minimum Node v15
2020-03-01
- Addressed an issue wherein
join
with separators longer than one character would not generate a correct string. - Added array functions
findIndex
,pop
andsort
2019-10-04
- Ensure that default options are not "discarded" when custom options are supplied.
- 3rd party dependencies updated.
2019-09-29
- 3rd party security vulnerability update.
2019-09-29
- Added Github Action for verifying pull requests
2019-08-01
- Updated trastpiler to 1.0.2
- Updated 3rd party dependencies to address their vulnerabilities
2019-06-13
- Updated dependencies to reduce vulnerabilities.
2019-03-03
- Add support for ThrowStatement, README updated accordingly. Issue #64
- Bug fix: Parantheses were not properly retained for IIFEs. Issue #65
- Exclude global and local 'use strict' directices. Issue #66
- Special thanks to the following user(s) for reporting these issues:
2019-02-01
- No change in functionality, badges included in README
2018-12-14
- Added scope declarations for FunctionDeclaration, FunctionExpression and ArrowFunctionExpression and corresponding test cases.
- Unary operator ~ is not supported. Added test case for this.
2018-10-24
- Bug fix: FunctionExpression was not passing on the transpilation config causing the AST traversal to break.
- Added test cases for FunctionExpression.
2018-10-12
- Restructured code to eliminate circular dependencies.
- Transpilation functionality was broken out into a separate library, trastpiler.
- Automated input, output and external dependencies for rollup build.
- Transpile is not globally shared anymore, but customizable and instanced.
2018-08-15
- Regression: Esprima was incorrectly listed as devdependency ever since 2.1.0
2018-08-14
- Tests would not re-run in watch mode. Replaced babel for esm.
2018-08-13
- Bug fix: Identifier names were not output in lowercase.
2018-07-31
- Bug fix: Class declaration would generate invalid syntax if a class had methods but no constructor. The manual injection of an empty constructor has been removed and replaced with a check instead. Token count remains unchanged.
- Bug fix: prettify was incorrectly indenting lines after a single-line if-statement.
2018-07-31
- Added support for conditional expressions (a ? b : c)
2018-07-27
- Added logo to readme.
2018-07-18
- Added option to prettify the generated lua code.
2018-05-19 Breaking change: polyfill property in the return object from jspicl is now a table of all included polyfills.
2018-05-18
- Added polyfills for .split, .substr and .substring methods on strings
2018-04-14
- Added support for while and for-loops
2018-03-13
- Added support for arrow function expressions
2018-02-19
- Added unit tests for statements
2018-02-14
- Added temporary workaround for length
- Will only work for arrays. This will break for objects with a length property.
2018-02-02
- Added support for unit testing.
- Special thanks to the following contributors for making it possible:
2018-01-23
- Added support for switch-statements.
- Special thanks to the following contributors for making it possible:
2018-01-23
- Added initial support for scoping, a way for statements, declarations and expressions to gain access to variables or custom properties passed down from parent nodes.
- transpile is now a named export
2018-01-08
- Bug fix: Some object call expressions where manually transpiled which broke callexpressions with computed members;
// BEFORE AFTER
objA[objB.prop](); // transpiles to -> objA.objB.prop() objA[objB.prop]()
2018-01-08
- Bug fix: Use brackets for computed memberexpressions
2018-01-07
- Added support for do-while statement
- Added polyfills for Math.abs, Math.ceil, Math.sin and Math.sqrt.
- Optimized token count for Object.entries/keys/values. Higher initial cost but more efficient when used often.
- Cleaned up declarations, statements and expressions. Removed redudant curly braces where not needed.
2018-01-05
- Added Math.min polyfill
2018-01-05
- Bug fix: Normalize variable, property and function names
2017-11-26
- Basic support for classes
2017-11-14
-
Api now returns an object containing the transpiled code and polyfills instead of a string
-
Polyfills are now only included if used
-
Added several polyfills/remaps:
- object/array.toString()
- console.log
- array.reduce
- array.map
- array.filter
- array.includes
- Object.keys
- Object.entries
- Object.values
-
Tremendous thanks to the contributors for making this possible:
2017-11-10
- Added Math.random polyfill
2017-11-09
- Bugfix: Nested callExpressions - transpile callee object and property properly
- Added vscode f5 run & debug launch settings
2017-11-08
- Stabilization & cleanup
- Updated limitations in README
- traverser renamed to transpile
- added eslint rules and dependencies
- mappers are now methods instead of strings. Alleviates customizations.
- Object.assign now supports multiple sources. Fixes #19.
- spreadProperty removed
- bugfix:
ifStatement
did not generate closing tag for else - bugfix:
join
polyfill didn't remove separator character - bugfix:
binaryExpression
generated incorrect output for the right expression
2017-10-13
- Added special cases for
Identifier
andLiteral
names - Added tester.js to try out transpilation.
2017-10-13
- Added support for empty return statements
2017-06-05
- Added decorator for logical expressions to include parantheses if needed.
2017-05-22
- Bug fix: fixed unary expression for
!
2017-05-22
- Added warning for conditional expressions
- Increased code readability in traverser.js
2017-04-26
- Added support for logical operators
2017-04-12
- Added polyfill support. Added in this version:
- Object.assign
- Array.prototype.join
2017-04-07
- Added support for sequence expression
2017-04-06
- Updated readme to include limitations
2017-04-06
- Initial version