diff options
Diffstat (limited to 'js')
| -rwxr-xr-x | js/stmd.js | 15 | 
1 files changed, 15 insertions, 0 deletions
| @@ -745,6 +745,13 @@      // and returning the inline parsed.      var parseInline = function() {          var startpos = this.pos; + +        var memoized = this.memo[startpos]; +        if (memoized) { +            this.pos = memoized.endpos; +            return memoized.inline; +        } +          var c = this.peek();          if (!c) {              return null; @@ -785,6 +792,12 @@              this.pos += 1;              res = [{t: 'Str', c: c}];          } + +        if (res) { +            this.memo[startpos] = { inline: res, +                                    endpos: this.pos }; +        } +          return res;      }; @@ -793,6 +806,7 @@          this.subject = s;          this.pos = 0;          this.refmap = refmap || {}; +        this.memo = {};          this.last_emphasis_closer = { '*': s.length, '_': s.length };          var inlines = [];          var next_inline; @@ -810,6 +824,7 @@              last_emphasis_closer: null,  // used by parseEmphasis method              pos: 0,              refmap: {}, +            memo: {},              match: match,              peek: peek,              spnl: spnl, | 
