In Zeta Producer haben wir den Window Scripting Host (WSH) mit JavaScript als Sprache integriert.
Vor kurzem haben wir eines unserer Skripte angepasst und darin folgenden Code eingefügt:
if (!Array.prototype.indexOf) {
Array.prototype.indexOf = function(searchValue, index) {
// ...
}
}
Und dieses indexOf
dann auch im Code vielfach verwendet.
Das hat dann zur Folge gehabt, dass der Speicher vom Programm (eine Windows-Forms-Anwendung) langsam und stetig immer voller lief.
Nachdem wir das prototype
-Konstrukt komplett entfernt hatten und durch eine reguläre Funktion ersetzt haben, war der Speicher wieder OK.
(So wie es aussieht, hat die obige Prototyp-Definition wohl auch noch Syntax-/Semantikfehler).