From a user standpoint, reloading the application, deleting objects, and rightclicking the tray icon to ExitApp no longer throws errors.https://www.autohotkey.com/boards/viewtopic.php?f=24&t=95688#p488852 wrote: Fixed issues when x.__Delete() accesses x during assignment/free.
During execution of __Delete, x now contains its new value, not "".
Any value assigned during __Delete is now retained rather than being overwritten (and possibly leaked) by the original assignment.
...
Changed object-release-on-exit to make variables unset, not merely blank.
Changed object-release-on-exit to avoid releasing constants.
These cannot be safely released as load-time optimizations replace non-dynamic references with uncounted object pointers within the code.
Makes little sense for the value of a constant to change.
Fixes dynamic references to constants during exit.
Fixes potential double-deletion of objects during exit.
Fixes potential re-initialization of classes referenced during exit.
Improves the odds that __Delete will work as intended (if called).
Such objects could only ever be deleted during exit, so OnExit provides a (more) suitable alternative.
Specifically, to what degree can the new __Delete order be relied upon? and to what extent? What is the new delete order? Also what is a constant within the context of AutoHotkey?