- if model[name] and not model.orig[name] then
- model.orig[name] = model[name]
- model[name] = function(self, ...)
+ local functionTable = model
+
+ if not rawget(functionTable, name) then
+ functionTable = getmetatable(model)
+ end
+
+ if functionTable[name] and not (functionTable.orig and functionTable.orig[name]) then
+ print('Profiler decoring ' .. functionTable.__typename .. '.' .. name)
+ functionTable.orig = functionTable.orig or {}
+ functionTable.orig[name] = functionTable[name]
+ functionTable[name] = function(self, ...)