I believe that it is unnecessary to have separate error value, when you could just design methods used by Value class so that they return an boolean indicating whether an error occurred or not.
Second commit stores function arguments in Frame class so that they can be reached by garbage collector through the stack frame.
Also fixes a bug where the function itself which already is stored in the Frame is not being marked by the garbage collection process. Oops.
After these changes I can run the quicksort example in built-in HTTPD a few times without it crashing. Seems like progress to me.
I believe that it is unnecessary to have separate error value, when you could just design methods used by
Value
class so that they return an boolean indicating whether an error occurred or not.Second commit stores function arguments in
Frame
class so that they can be reached by garbage collector through the stack frame.Also fixes a bug where the function itself which already is stored in the
Frame
is not being marked by the garbage collection process. Oops.After these changes I can run the quicksort example in built-in HTTPD a few times without it crashing. Seems like progress to me.