I noticed this when I was testing the geolocation plugin on windows phone. When no javascript is provided (moduleList.length == 0), we never seem to get past handlePluginsObject().
This could easily be fixed by adding something like if(moduleList.length == 0) { finishPluginLoading(); } to the handlePluginsObject funtion but I wan't sure if this was just a windows phone bug. Steps to reproduce: 1.Create a new project 2. create a cordova_plugins.js file in the www folder with the following content : cordova.define('cordova/plugin_list', function(require, exports, module) { module.exports = [] }); 3. Run it. 4. Does device ready fire? This doesn't really cause much of a problem since you don't need the bridge if your only using the browser implementation but it will if people are waiting for device ready to fire before using our APIs (recommend).