
Excellent design!!! But I found a bug, or my misunderstanding. gc will treat the BASE[1] as a number, so the function in BASE[1] will not be marked by gc. If the BASE[1] is the only reference to the function, the function will be garbage collected. Then the program will be corrupted.