Very strange indeed.
Proxy generally refers to Corona native objects(Most Corona objects have an entry called _proxy that corresponds to the native-side part of the object), as well Index #-1 refers to whatever was on top of the Lua stack when using the native Lua bridge (communicating between Lua and C), rather than a specific index of a function call. Not sure what the number represents, looking at the initial error could be some sort of type info, but that’s a wild guess.
What’s interesting though with the new log is that the first two entries of the Callstacks have the exact same Line numbers as the initial type error, meaning it’s possible they are closely related, and the first error was masking the second error, although without filenames, we can’t really be sure of it.
If it is the native engine code, it’s possible they could be using rawset on _G.type, which would mean that it cannot be tracked :(. It would also mean that they wouldn’t overwrite the initial type function, but could possibly be getting the intial type function instead of their new value.
I think at this point you will need a Corona Rep on here to help, as there is no way either one of us is going to effectively figure out what 647proxy was supposed to be. Sorry I couldn’t get you a definitive answer so far.
@Naomi
Here is a simpler form I currently use (stripped slightly of dependencies)
local function globalWatch(g, key, value)
print("GlobalWatch", tostring(key) .. "has been added to \_G\n" .. debug.traceback())
rawset(g, key, value)
end
setmetatable(\_G, { \_\_index = globalWatch })
As mentioned above, it won’t detect overwriting of _G variables, but it will print a log each time a new key is created. [import]uid: 134101 topic_id: 31142 reply_id: 124608[/import]