in seriously.js [4633:4698]
TransformNode.prototype.destroy = function () {
var i, key, item, hook = this.hook;
//let effect destroy itself
if (this.plugin.destroy && typeof this.plugin.destroy === 'function') {
this.plugin.destroy.call(this);
}
delete this.effect;
if (this.frameBuffer) {
this.frameBuffer.destroy();
delete this.frameBuffer;
delete this.texture;
}
//stop watching any input elements
for (i in this.inputElements) {
if (this.inputElements.hasOwnProperty(i)) {
item = this.inputElements[i];
item.element.removeEventListener('change', item.listener, true);
item.element.removeEventListener('input', item.listener, true);
}
}
//sources
if (this.source) {
this.source.removeTarget(this);
}
//targets
while (this.targets.length) {
item = this.targets.pop();
if (item && item.removeSource) {
item.removeSource(this);
}
}
for (key in this) {
if (this.hasOwnProperty(key) && key !== 'id') {
delete this[key];
}
}
//remove any aliases
for (key in aliases) {
if (aliases.hasOwnProperty(key)) {
item = aliases[key];
if (item.node === this) {
seriously.removeAlias(key);
}
}
}
//remove self from master list of effects
i = transforms.indexOf(this);
if (i >= 0) {
transforms.splice(i, 1);
}
i = allTransformsByHook[hook].indexOf(this);
if (i >= 0) {
allTransformsByHook[hook].splice(i, 1);
}
Node.prototype.destroy.call(this);
};