nyariv/SandboxJS

Line after one-line if statement disappears

Opened this issue · 2 comments

This is my script:

console.log(1)

if (false) throw new Error('test')

console.log(2)

console.log(3)

I run it like this:

// this.jsContents is the the above script

const jsContentsExecutor: string = `async function _execute() {${this.jsContents}}; return _execute();`

const jsExecutor = sandbox.compileAsync(jsContentsExecutor)

  await jsExecutor({ 
//    _vars: pluginVars, // Normally some vars are added
//    _settings: pluginSettings
  }).run()

This is the output:

1
3

So it appears the 2 is disappearing.

If I change the line to have brackets, it does work:

if (false) { 
  throw new Error('test')
}

Results in:

1
2
3

Do while loop has the same problem:

console.log(1)

do {
  console.log(2)

  break
} while (true)

console.log(3)

console.log(4)

Results in:

1
2
4

hello there ! 👋
have you found a solution or are you using other library ?