Components.utils.unload was introduced in Firefox 7 and is used to unload JavaScript code modules. This can be particularly handy with restartless (boostrapped) extensions, so that you can unload an old version of a code module when a new version of your add-on is installed.

Once this method has been called, references to the module will continue to work but any subsequent import of the module will reload it and give a new reference. If the JavaScript code module has not yet been imported then this method will do nothing.

You should not unload modules that are part of the application (anything under resource://gre/ or resource:/// or resource://app/) as these may be in use by other extensions and the application. Only unload modules you include as part of your extension.


Components.utils.unload( url );


The "resource://" URL of the script to unload. This must be the same URL that was used to load the script.


You can unload a module called MyModule.jsm using the following line of code:

Note: Currently Components.utils.unload clears the global object of an unloaded module. This may cause modules to misbehave after unloading even if you have a reference to them. See bug 769253

See also