summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xjs/stmd.js10
1 files changed, 8 insertions, 2 deletions
diff --git a/js/stmd.js b/js/stmd.js
index 1b82fd5..250814e 100755
--- a/js/stmd.js
+++ b/js/stmd.js
@@ -294,8 +294,12 @@ var parseEmphasis = function() {
var last_emphasis_closer = null;
var delims_to_match = numdelims;
- while (this.last_emphasis_closer === null ||
- this.last_emphasis_closer >= this.pos) {
+
+ // We need not look for closers if we have already recorded that
+ // there are no closers past this point.
+ if (this.last_emphasis_closer === null ||
+ this.last_emphasis_closer >= this.pos) {
+ while (true) {
res = this.scanDelims(c);
numclosedelims = res.numdelims;
if (res.can_close) {
@@ -325,11 +329,13 @@ var parseEmphasis = function() {
} else {
break;
}
+ }
}
// didn't find closing delimiter
this.pos = startpos + numdelims;
if (last_emphasis_closer === null) {
+ // we know there are no closers after startpos, so:
this.last_emphasis_closer = startpos;
} else {
this.last_emphasis_closer = last_emphasis_closer;