• Kevin Modzelewski's avatar
    Fix deinitFrame on deopt · c079bc47
    Kevin Modzelewski authored
    Our convention is that on deopt, the callee is responsible for calling deinitFrame().
    This is tricky, since for OSR our convention is the opposite, that the caller calls deinitFrame().
    
    This means that if we OSR and then deopt(), the top and bottom frames both think they should call
    deinitFrame() (since one is the caller of an OSR and the other is the callee of a deopt).
    
    This commit fixes + extends the "disable deinitFrame for this frame" approach we kind of had.
    For performance, deinitFrame() stays the same, but any site that might have its deinitFrame disabled
    (namely, in the interpreter), it should call deinitFrameMaybe() instead.
    c079bc47
irgenerator.cpp 142 KB