improve Jsligo proper return handling
Motivation and Context
Improve the return handling in JsLIGO Related Issue(s): https://gitlab.com/ligolang/ligo/-/issues/1525
Description
Currently the handling of return
in JsLIGO is flawed. This tries to fix some of the issues. This MR does not fix issues related to switch
and while
.
let a = b => { b }
will now return a unit
instead of b
. To return b
, the return
keyword should be used:
let a = b => { return b }`
The handling of blocks has also improved:
const g = n => {
let output = n;
{
output += 1 ;
if (n > 1) {
return (output + 12)
}
}
return output
}
will now correctly work.
Types of changes
-
Bug fix (non-breaking change which fixes an issue) -
New feature (non-breaking change which adds functionality) -
Breaking change (fix or feature that would cause existing functionality to not work as expected) -
Performance improvement (non-breaking change that improves performance) -
None (change with no changelog)
Changelog
Improve the return handling in JsLIGO
Checklist:
-
Changes follow the existing coding style (use dune @fmt
to check). -
Tests for the changes have been added (for bug fixes / feature). -
Documentation has been updated. -
Changelog description has been added (if appropriate). -
Start titles under ## Changelog
section with #### (if appropriate). -
There is no image or uploaded file in changelog -
Examples in changed behaviour have been added to the changelog (for breaking change / feature).