• Fri 2020.03.27

    Thank you @Gordon for the reply.

    'I guarantee this is not what's happening in JS'

    I can assure you that after running a setInterval that updated once a second, calling a log to console method, printing the contents of around twenty vars, worked for at least five minutes, then multiple errors such as the one in post #1 indicating 'undefined' started popping up. I attempted to print those vars from the command line Left-hand console side, same error.

    Doing a dump, and the defined var that is clearly seen on the Right-hand editor side, and the var is clearly there, that was uploaded. Doing a search both in the source using Notepad++ and within the WebIDE editor match. But now attempting to run a wrapper function that calls the console.log statements now won't even run, also providing the same error. So Espruino is informing us that it can't find the previously declared var either, otherwise it would just return =undefined when not assigned a value.

    I even performed a sanity check on the L.H. console side to see what error is seen when an attempt to view a known non declared var is entered and the same errror occurs.

    I never defined rrr so this is correct - and the same for the now missing var

    >rrr
    Uncaught ReferenceError: "rrr" is not defined
     at line 1 col 1
    rrr
    
    
    
    >intervalID
    =undefined
    



    I scrolled through the dump contents and the var that is defined in the code that was uploaded is no longer there.

    I'll copy the contents of the console to a text file and take a fresh look at both the dump and the output, along with running more tests tomorrow. I'm chicken to power down/try again, in fear of not being able to have this repeatable situation, be reproduceable.

    If your statement above is accurate, what other ideas might make a var disappear?



    I'll read over the errorFlag event tonight and play with it tomorrow. Maybe that will shed some light.


    EDIT: This is what is shown just after the undefined errors start to occur:

    >E.getErrorFlags()
    =[
      "FIFO_FULL",
      "LOW_MEMORY"
     ]
    >
    



    The LOW_MEMORY is obvious, and the FIFO_FULL most likely occurs as the logging function throws the error, bypassing or delaying the ability to turn off a pulse train created by analogWrite and the corresponding setWatch fills quickly.

About

Avatar for Robin @Robin started