Lo que deberías hacer es apuntar todo tu código a un objeto y luego destruirlo o anularlo (asignarle NULL).
En tu caso tienes :
Código Javascript
:
Ver originalwidget.prototype.loadscript = function() {
//JS
curScriptTag = document.createElement('script');
curScriptTag.type = 'text/javascript';
curScriptTag.src = "http://www.direccion.com/#name_widget#.#myfuncion#.js?encode=html";
curScriptTag.id = "loaded";
document.getElementsByTagName("head")[0].appendChild(curScriptTag);
//END JS
//CSS
curCSScriptTag = document.createElement('script');
curCSScriptTag.type = 'text/css';
curCSScriptTag.src = "http://statics.direccion.com/widgets/css/#name_widget#.css";
curCSScriptTag.id = "loaded";
document.getElementsByTagName("head")[0].appendChild(curCSScriptTag);
}
Entonces una vez utilizada esta función:
Código Javascript
:
Ver originalwidget.prototype.loadscript = null
De esta manera estas perdiendo el puntero a tu función por lo que el interprete de JavaScript tarde o temprano debería liberar la memoria ocupada por el script anterior. Sin embargo no tengo tanto conocimiento como para saber en que momento esto se hará.