From 944b55a6b00b46708bbb16983f234fc08b5bd42f Mon Sep 17 00:00:00 2001 From: Ben Alpert Date: Sat, 17 Aug 2013 16:07:22 -0700 Subject: [PATCH] Make supsub work with empty nucleus Auditors: emily --- buildTree.js | 5 ++++- test/katex-tests.js | 21 +++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/buildTree.js b/buildTree.js index 54de97186..008c493bf 100644 --- a/buildTree.js +++ b/buildTree.js @@ -52,7 +52,10 @@ var groupToType = { }; var getTypeOfGroup = function(group) { - if (group.type === "supsub") { + if (group == null) { + // Like when typesetting $^3$ + return groupToType.ord; + } else if (group.type === "supsub") { return getTypeOfGroup(group.value.base); } else if (group.type === "llap" || group.type === "rlap") { return getTypeOfGroup(group.value); diff --git a/test/katex-tests.js b/test/katex-tests.js index 5be61bd45..e8caa910b 100644 --- a/test/katex-tests.js +++ b/test/katex-tests.js @@ -1,3 +1,4 @@ +var buildTree = require("../buildTree"); var parseTree = require("../parseTree"); describe("A parser", function() { @@ -286,6 +287,26 @@ describe("A subscript and superscript parser", function() { }); }); +describe("A subscript and superscript tree-builder", function() { + it("should not fail when there is no nucleus", function() { + expect(function() { + buildTree(parseTree("^3")); + }).not.toThrow(); + + expect(function() { + buildTree(parseTree("_2")); + }).not.toThrow(); + + expect(function() { + buildTree(parseTree("^3_2")); + }).not.toThrow(); + + expect(function() { + buildTree(parseTree("_2^3")); + }).not.toThrow(); + }); +}); + describe("A group parser", function() { it("should not fail", function() { expect(function() {