Skip to content

Commit cc0364b

Browse files
authored
Merge pull request #2020 from dpvc/issue1986
Prevent potential infinite loop in setRenderer(). Resolves issue #1986
2 parents 63064b1 + 70a68ad commit cc0364b

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

unpacked/MathJax.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2042,17 +2042,20 @@ MathJax.Hub = {
20422042

20432043
setRenderer: function (renderer,type) {
20442044
if (!renderer) return;
2045-
if (!MathJax.OutputJax[renderer]) {
2045+
var JAX = MathJax.OutputJax[renderer];
2046+
if (!JAX) {
2047+
MathJax.OutputJax[renderer] = MathJax.OutputJax({id: "unknown", version:"1.0.0", isUnknown: true});
20462048
this.config.menuSettings.renderer = "";
20472049
var file = "[MathJax]/jax/output/"+renderer+"/config.js";
20482050
return MathJax.Ajax.Require(file,["setRenderer",this,renderer,type]);
20492051
} else {
20502052
this.config.menuSettings.renderer = renderer;
20512053
if (type == null) {type = "jax/mml"}
2054+
if (JAX.isUnknown) JAX.Register(type);
20522055
var jax = this.outputJax;
20532056
if (jax[type] && jax[type].length) {
20542057
if (renderer !== jax[type][0].id) {
2055-
jax[type].unshift(MathJax.OutputJax[renderer]);
2058+
jax[type].unshift(JAX);
20562059
return this.signal.Post(["Renderer Selected",renderer]);
20572060
}
20582061
}
@@ -2971,6 +2974,7 @@ MathJax.Hub.Startup = {
29712974
load = AJAX.Require(file);
29722975
return load;
29732976
},
2977+
Process: function (state) {throw Error(this.id + " output jax failed to load properly")},
29742978
Register: function (mimetype) {
29752979
var jax = HUB.outputJax;
29762980
if (!jax[mimetype]) {jax[mimetype] = []}

0 commit comments

Comments
 (0)