LivelyKernel/lively.modules

Remove methods from class prototype when changing class definition

levjj opened this issue · 0 comments

levjj commented

As pointed out in #13, methods and accessors are not actually removed from classes when the class definition changes. It may seem like an edge case but there have been multiple confusing situations caused by out-dated methods and accessors being called after renaming them in the class definitions. This also causes problems with a method got deleted with the intention of calling the superclass. In that case, leaving the out-dated method prevents the super call.

As a side-note, this could be problematic if classes could be extended but as long as there are no mixins, it should be fine to simply remove the method or accessor from the prototype with delete.