improve Jsligo proper return handling

Sander requested to merge jsligo-proper-return-handling into dev

Motivation and Context

Improve the return handling in JsLIGO Related Issue(s):


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)


Improve the return handling in JsLIGO


  • 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).
Edited by Sander

Merge request reports