h0tk3y/better-parse

Parser works in JS development mode but not in JS production mode

Opened this issue · 2 comments

avwie commented

I've made a toy language: https://github.com/avwie/borklang

Everything works correctly on the JVM and when running jvmTest and jsTest. Also my web project is working correctly when I use browserDevelopmentRun.

However, when I use browserDistributionRun or make a web-distributable, the tokenizer/parsers don't work correctly.

For instance:

fn fib = (n) ->  {
  if (n < 2) n else fib(n - 1) + fib(n - 2)
}

fib(10)

This returns 55 in development mode, but in production mode I get:
Invalid number format: 'fi'

I found no way on how to debug this, because I loose a lot of information with productionRun.

avwie commented

It's actually pretty easy to reproduce. Just pick the BooleanExpression demo and run it in a nodeJS target in production.

ParseException: Could not parse input: UnparsedRemainder(startsWith=id@2 for " &" at 1 (1:2))

So this library does not work in JS production environments.

avwie commented

Fixed in #67