function gEncodeToHTML(str) { if (typeof str !== 'string') return str; return str.replace(/&/g, '&') .replace(//g, '>') .replace(/"/g, '"') .replace(/'/g, '''); } function gDecodeFromHTML(str) { if (typeof str !== 'string') return str; return str.replace(/'/g, "'") .replace(/"/g, '"') .replace(/>/g, '>') .replace(/</g, '<') .replace(/&/g, '&'); } function FullArrayCopy(arr) { var res = []; arr.forEach(function(element) { var copyElement = Object.assign(Object.create(element), element); res.push(copyElement); }); return res; }