memory leak in cypress code example
Example: cypress memory leak
function StringMap() {
this.stringToIndex = new Map();
this.indexToString = [];
this.addString = function(str) {
var index = this.stringToIndex.get(str);
if (index !== undefined) {
return index;
}
index = this.indexToString.length;
this.indexToString.push(str);
this.stringToIndex.set(str, index);
return index;
};
this.getString = function(index) {
return this.indexToString[index];
};
this.addStrings = function(strArray) {
var indices = [];
for (var i=0; i<strArray.length; i++) {
var s = strArray[i];
var index = this.addString(s);
indices.push(index);
}
return indices;
};
this.getStrings = function(indices) {
var strArray = [];
for (var i=0; i<indices.length; i++) {
var index = indices[i];
var str = this.getString(index);
strArray.push(str);
}
return strArray;
};
};
window.stringMap = new StringMap();
window.packStyles = function(styles) {
return window.stringMap.addStrings(styles);
};
window.unpackStyles = function(styles) {
var isPacked = styles && (typeof styles[0] == "number");
if (!isPacked) {
return styles;
}
return window.stringMap.getStrings(styles);
};