diff --git a/runtime/scripts/jme-display.js b/runtime/scripts/jme-display.js index cd4ffe1ff..bb9bda23e 100644 --- a/runtime/scripts/jme-display.js +++ b/runtime/scripts/jme-display.js @@ -110,6 +110,9 @@ jme.display = /** @lends Numbas.jme.display */ { parser = parser || Numbas.jme.standardParser; try { var exprTree = parser.compile(expr,{},true); //compile the expression to a tree. notypecheck is true, so undefined function names can be used. + if(!exprTree) { + return ''; + } return jme.display.simplifyTree(exprTree,ruleset,scope); // simplify the tree } catch(e) { //e.message += '\nSimplifying expression failed. Expression was: '+expr; diff --git a/tests/jme-runtime.js b/tests/jme-runtime.js index 58f336aaf..838138519 100644 --- a/tests/jme-runtime.js +++ b/tests/jme-runtime.js @@ -15914,6 +15914,9 @@ jme.display = /** @lends Numbas.jme.display */ { parser = parser || Numbas.jme.standardParser; try { var exprTree = parser.compile(expr,{},true); //compile the expression to a tree. notypecheck is true, so undefined function names can be used. + if(!exprTree) { + return ''; + } return jme.display.simplifyTree(exprTree,ruleset,scope); // simplify the tree } catch(e) { //e.message += '\nSimplifying expression failed. Expression was: '+expr; diff --git a/tests/numbas-runtime.js b/tests/numbas-runtime.js index 5eefcb01b..0181d593a 100644 --- a/tests/numbas-runtime.js +++ b/tests/numbas-runtime.js @@ -15903,6 +15903,9 @@ jme.display = /** @lends Numbas.jme.display */ { parser = parser || Numbas.jme.standardParser; try { var exprTree = parser.compile(expr,{},true); //compile the expression to a tree. notypecheck is true, so undefined function names can be used. + if(!exprTree) { + return ''; + } return jme.display.simplifyTree(exprTree,ruleset,scope); // simplify the tree } catch(e) { //e.message += '\nSimplifying expression failed. Expression was: '+expr;