You'll note that, at its root, PProPanel has a /PProPanel/PProPanel.jsx; that .jsx file is also referenced in the panel's manifest.
When the panel is loaded, that /PProPanel.jsx goes through every .jsx file in /PProPanel/jsx (in this case, just one such file), and loads it as available ExtendScript. Later, in response to user interaction, the panel calls into those ExtendScript functions, found in the .jsx files in the /jsx directory.
Does your panel use a similar mechanism?
[Feel free to send me the panel; b b b at adobe dot com]
PPro doesn't; it also contains an ExtendScript interpreter.
Any/all ExtendScript which is to be available during a given ExtendScript session / PPro session, must be within or enumerated from within the .jsx file specified in the panel's manifest.
So, don't send me just a .jsx file; rather, send me your entire panel.
For anyone else experiencing this problem, having built their panel from the sample panel, make sure that any elements you remove from your panel are also removed from the onLoaded() function. My problem was the onLoaded() function was trying to access the dragable control in the sample panel, which I had deleted. I kept getting "Undefined is not an object" errors when I would try to run my panel because the onLoaded() function was breaking before it could load ExtendScript and thus use all the functions I had made. The problem line for me that I had to remove was this:
document.getElementById("dragthing").style.backgroundColor = "lightblue";
Thanks for the help Bruce! And hope this can help someone.