Regards base_vtable ... name, type, ... var_vtable ... get_integer, set_integer, ... val_vtable ... add, sub, ... prop_vtable ... property functions (set/getprop are different, depending on the existence of the property hash)
I think this might rephrase as object contains: - object core - properties - customizations of object - customizations of value Currently, object contains: - single vtable Ok, it sounds like the motivation for separating out "properties" was an implementation concern "(set/getprop are different, depending on the existence of the property hash)". So "properties" is basically just "object core (part 2)". Yes? What is the distinction between "object core" (name, type, ...) and "customizations of object" (get_integer, set_integer, ...) ? Given some function foo, what is a rule/guideline which might tell which table to put it in? Which brings us to var vs val, which I'm afraid I'm still not clear on. Could someone do a one paragraph description? (If it is simply a performance hack, what cases are being optimized? What cases not? What is the before and after flow? What are some examples of use?) Leo - could you repost tt.c, perhaps leaving it inline, rather than using an attachment, to be sure the list archives catch it? Thanks. Mitchell