You could also use a dictionary held in the top-level of a project script.  You can search on the forum about using system.util.getGlobals() for such a thing.
  
  
    I should mention that the work-around shown above should NOT be placed in all of your project library scripts.  It solves the multiple execution problem but at the risk of AB-BA deadlock across interdependent scripts.  Some thoughts: 
Definitions of simple functions and simple assignments to top-level constants do not need this fix.  While multiple executions will repeatedly replace top level objects, the replacements are identical to the first pass--no harm, no foul. 
Definitions of top-lev…