miniscript icon indicating copy to clipboard operation
miniscript copied to clipboard

Poor error message when assigning to a property of self at the global scope

Open JoeStrout opened this issue 2 years ago • 0 comments

I find it's surprisingly easy, when coding along and concentrating on other things, to create a class and then try to add a method this way:

self.foo = function
    // do some stuff
end function

And when you do this, you get a poor error message: "Runtime Error: can't set indexed element of null". What's worse, if this occurs in the main file, the stackTrace is empty — and if it occurs in an import module, it will claim the error is on the import line!

Curiously, trying to assign to super.foo produces a better error ("Undefined Identifier: 'super' is unknown in this context").

So:

  1. Catch trying to use self. when self is undefined, and print a better error message. Ideal might be something like "self undefined; not in object context"
  2. Ensure that the line number is correctly reported, both in the main file and in an import module.

JoeStrout avatar Feb 13 '24 04:02 JoeStrout