1. The change is necessary due to the changes in the has plugin handler

2. OK.  Didn't realize arguments.callee was a problem.

3. getAmdModule() in depScan.js can return either a module or an array of modules.  Arrays of modules result from processing plugins.  The change to the has plugin can result in recursion in plugin processing (i.e. has plugin indirectly invokes text plugin), which in turn can result in nested arrays returned by getAmdModule()