diff --git a/lib/javascript-static.js b/lib/javascript-static.js index 66af6218bd0..463f8249616 100644 --- a/lib/javascript-static.js +++ b/lib/javascript-static.js @@ -716,7 +716,13 @@ M.util.get_string = function(identifier, component, a) { // creating new instance if YUI is not optimal but it seems to be better way then // require the instance via the function API - note that it is used in rare cases // for debugging only anyway - var Y = new YUI({ debug : true }); + // To ensure we don't kill browser performance if hundreds of get_string requests + // are made we cache the instance we generate within the M.util namespace. + // We don't publicly define the variable so that it doesn't get abused. + if (typeof M.util.get_string_yui_instance === 'undefined') { + M.util.get_string_yui_instance = new YUI({ debug : true }); + } + var Y = M.util.get_string_yui_instance; } if (!M.str.hasOwnProperty(component) || !M.str[component].hasOwnProperty(identifier)) {