diff --git a/pitfall/fontkit/gsub-processor.rkt b/pitfall/fontkit/gsub-processor.rkt index 1a93da6a..fffca581 100644 --- a/pitfall/fontkit/gsub-processor.rkt +++ b/pitfall/fontkit/gsub-processor.rkt @@ -19,9 +19,9 @@ https://github.com/mbutterick/fontkit/blob/master/src/opentype/GSUBProcessor.js [(= index -1) #f] [else (define glyph (· this glyphIterator cur)) (send glyph id - (case (· table version) - [(1) (bitwise-and (+ (· glyph id) (· table deltaGlyphID)) #xffff)] - [(2) (send (· table substitute) get index)])) + (case (· table version) + [(1) (bitwise-and (+ (· glyph id) (· table deltaGlyphID)) #xffff)] + [(2) (send (· table substitute) get index)])) #t])] [(2) ;; Multiple Substitution (report 'multiple-substitution) @@ -64,72 +64,80 @@ https://github.com/mbutterick/fontkit/blob/master/src/opentype/GSUBProcessor.js (cond [(= index -1) #f] [(for*/or ([ligature (in-list (report (send (· table ligatureSets) get (report index 'starting-index))))] - [matched (in-value (send this sequenceMatchIndices 1 (report (· ligature components))))] - #:when (report matched)) - (define curGlyph (· this glyphIterator cur)) - - ;; Concatenate all of the characters the new ligature will represent - (define characters - (append (· curGlyph codePoints) - (append* (for/list ([index (in-list matched)]) - (report index) - (get-field codePoints (list-ref (· this glyphs) index)))))) - - (report characters) - ;; Create the replacement ligature glyph - (define ligatureGlyph (+GlyphInfo (· this font) (· ligature glyph) characters (· curGlyph features))) - (report (· ligatureGlyph id)) - (set-field! shaperInfo ligatureGlyph (· curGlyph shaperInfo)) - (set-field! isLigated ligatureGlyph #t) - (set-field! substituted ligatureGlyph #t) - - (define isMarkLigature - (and (· curGlyph isMark) - (for/and ([match-idx (in-list matched)]) - (· (list-ref (· this glyphs) match-idx) isMark)))) - - (set-field! ligatureID ligatureGlyph (cond - [isMarkLigature #f] - [else (define id (· this ligatureID)) - (increment-field! ligatureID this) - id])) - - (define lastLigID (· curGlyph ligatureID)) - (define lastNumComps (length (· curGlyph codePoints))) - (define curComps lastNumComps) - (define idx (add1 (· this glyphIterator index))) - - ;; Set ligatureID and ligatureComponent on glyphs that were skipped in the matched sequence. - ;; This allows GPOS to attach marks to the correct ligature components. - (for ([matchIndex (in-list matched)]) - ;; Don't assign new ligature components for mark ligatures (see above) - (cond - [isMarkLigature (set! idx matchIndex)] - [else (while (< idx matchIndex) - (define ligatureComponent (+ curComps (- lastNumComps) (min (or (get-field ligatureComponent (list-ref (· this glyphs) idx)) 1) lastNumComps))) - (set-field! ligatureID (list-ref (· this glyphs) idx) (· ligatureGlyph ligatureID)) - (set-field! ligatureComponent (list-ref (· this glyphs) idx) ligatureComponent) - (increment! idx))]) - - (define lastLigID (· (list-ref (· this glyphs) idx) ligatureID)) - (define lastNumComps (length (· (list-ref (· this glyphs) idx) codePoints))) - (increment! curComps lastNumComps) - (increment! idx)) ;; skip base glyph + [matched (in-value (send this sequenceMatchIndices 1 (report (· ligature components))))] + #:when (report matched)) + (define curGlyph (· this glyphIterator cur)) + + ;; Concatenate all of the characters the new ligature will represent + (define characters + (append (· curGlyph codePoints) + (append* (for/list ([index (in-list matched)]) + (report index) + (get-field codePoints (list-ref (· this glyphs) index)))))) + + (report characters) + ;; Create the replacement ligature glyph + (define ligatureGlyph (+GlyphInfo (· this font) (· ligature glyph) characters (· curGlyph features))) + (report (· ligatureGlyph id)) + (set-field! shaperInfo ligatureGlyph (· curGlyph shaperInfo)) + (set-field! isLigated ligatureGlyph #t) + (set-field! substituted ligatureGlyph #t) + + (define isMarkLigature + (and (· curGlyph isMark) + (for/and ([match-idx (in-list matched)]) + (· (list-ref (· this glyphs) match-idx) isMark)))) + + (set-field! ligatureID ligatureGlyph (cond + [isMarkLigature #f] + [else (define id (· this ligatureID)) + (increment-field! ligatureID this) + id])) + + (define lastLigID (· curGlyph ligatureID)) + (define lastNumComps (length (· curGlyph codePoints))) + (define curComps lastNumComps) + (define idx (add1 (· this glyphIterator index))) + + ;; Set ligatureID and ligatureComponent on glyphs that were skipped in the matched sequence. + ;; This allows GPOS to attach marks to the correct ligature components. + (for ([matchIndex (in-list matched)]) + ;; Don't assign new ligature components for mark ligatures (see above) + (cond + [isMarkLigature (set! idx matchIndex)] + [else (while (< idx matchIndex) + (define ligatureComponent (+ curComps (- lastNumComps) (min (or (get-field ligatureComponent (list-ref (· this glyphs) idx)) 1) lastNumComps))) + (set-field! ligatureID (list-ref (· this glyphs) idx) (· ligatureGlyph ligatureID)) + (set-field! ligatureComponent (list-ref (· this glyphs) idx) ligatureComponent) + (increment! idx))]) + + (define lastLigID (· (list-ref (· this glyphs) idx) ligatureID)) + (define lastNumComps (length (· (list-ref (· this glyphs) idx) codePoints))) + (increment! curComps lastNumComps) + (increment! idx)) ;; skip base glyph - ;; Adjust ligature components for any marks following - (when (and lastLigID (not isMarkLigature)) - (for ([i (in-range idx (length (· this glyphs)))] - #:when (= (· (list-ref (· this glyphs) idx) ligatureID) lastLigID)) - (define ligatureComponent (+ curComps (- lastNumComps) (min (or (get-field ligatureComponent (list-ref (· this glyphs) i)) 1) lastNumComps))) - (set-field! ligatureComponent (list-ref (· this glyphs) i) ligatureComponent))) - - ;; Delete the matched glyphs, and replace the current glyph with the ligature glyph - (report* (for/list ([g (· this glyphs)]) (· g id)) (· this glyphIterator index)) - (set-field! glyphs this (drop-right (· this glyphs) (length matched))) - (set-field! glyphs this (list-set (· this glyphs) (· this glyphIterator index) ligatureGlyph)) - (set-field! glyphs (· this glyphIterator) (· this glyphs)) - (report* (for/list ([g (· this glyphs)]) (· g id)) (· this glyphIterator index)) - #t)] + ;; Adjust ligature components for any marks following + (when (and lastLigID (not isMarkLigature)) + (for ([i (in-range idx (length (· this glyphs)))] + #:when (= (· (list-ref (· this glyphs) idx) ligatureID) lastLigID)) + (define ligatureComponent (+ curComps (- lastNumComps) (min (or (get-field ligatureComponent (list-ref (· this glyphs) i)) 1) lastNumComps))) + (set-field! ligatureComponent (list-ref (· this glyphs) i) ligatureComponent))) + + ;; Delete the matched glyphs, and replace the current glyph with the ligature glyph + (report (for/list ([g (· this glyphs)]) (· g id)) 'step-a) + (report matched) + (report (· this glyphIterator index)) + (set-field! glyphs this (for*/fold ([gids (· this glyphs)]) + ([idx (in-list (reverse matched))]) + (for/list ([(gid i) (in-indexed gids)] + #:unless (= idx i)) + gid))) + (report (for/list ([g (· this glyphs)]) (· g id)) 'step-b) + (set-field! glyphs this (list-set (· this glyphs) (· this glyphIterator index) ligatureGlyph)) + (set-field! glyphs (· this glyphIterator) (· this glyphs)) + (report (for/list ([g (· this glyphs)]) (· g id)) 'step-c) + (report (· this glyphIterator index)) + #t)] [else #f])] [(5) ;; Contextual Substitution (send this applyContext table)] diff --git a/pitfall/fontkit/shaping-plan.rkt b/pitfall/fontkit/shaping-plan.rkt index 5cf173bb..8b8e95b5 100644 --- a/pitfall/fontkit/shaping-plan.rkt +++ b/pitfall/fontkit/shaping-plan.rkt @@ -88,6 +88,7 @@ https://github.com/mbutterick/fontkit/blob/master/src/opentype/ShapingPlan.js (stage (· this font) glyphs positions)] [(> (length stage) 0) #;(report*/file 'shaping-plan:applying-features processor) + (report/file positions) (report/file (send processor applyFeatures stage glyphs positions))])))) diff --git a/pitfall/pitfall/test/out.bin b/pitfall/pitfall/test/out.bin index 788641ab..809e6044 100644 Binary files a/pitfall/pitfall/test/out.bin and b/pitfall/pitfall/test/out.bin differ diff --git a/pitfall/pitfall/test/out.txt b/pitfall/pitfall/test/out.txt index cb412312..0158297c 100644 --- a/pitfall/pitfall/test/out.txt +++ b/pitfall/pitfall/test/out.txt @@ -1,91 +1,126 @@ -glyph ids =450,480 +glyph ids =450,480,555 resetting iterator start while +++++++++++++++++++++++++++++ -glyphs.length at top = 2 -glyph ids at top =450,480 +glyphs.length at top = 3 +glyph ids at top =450,480,555 this.glyphIterator.index at top = 0 feature = numr this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern (feature in this.glyphIterator.cur.features) = false start while +++++++++++++++++++++++++++++ -glyphs.length at top = 2 -glyph ids at top =450,480 +glyphs.length at top = 3 +glyph ids at top =450,480,555 this.glyphIterator.index at top = 1 feature = numr this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern (feature in this.glyphIterator.cur.features) = false +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 3 +glyph ids at top =450,480,555 +this.glyphIterator.index at top = 2 +feature = numr +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = false resetting iterator start while +++++++++++++++++++++++++++++ -glyphs.length at top = 2 -glyph ids at top =450,480 +glyphs.length at top = 3 +glyph ids at top =450,480,555 this.glyphIterator.index at top = 0 feature = dnom this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern (feature in this.glyphIterator.cur.features) = false start while +++++++++++++++++++++++++++++ -glyphs.length at top = 2 -glyph ids at top =450,480 +glyphs.length at top = 3 +glyph ids at top =450,480,555 this.glyphIterator.index at top = 1 feature = dnom this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern (feature in this.glyphIterator.cur.features) = false +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 3 +glyph ids at top =450,480,555 +this.glyphIterator.index at top = 2 +feature = dnom +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = false resetting iterator start while +++++++++++++++++++++++++++++ -glyphs.length at top = 2 -glyph ids at top =450,480 +glyphs.length at top = 3 +glyph ids at top =450,480,555 this.glyphIterator.index at top = 0 feature = frac this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern (feature in this.glyphIterator.cur.features) = false start while +++++++++++++++++++++++++++++ -glyphs.length at top = 2 -glyph ids at top =450,480 +glyphs.length at top = 3 +glyph ids at top =450,480,555 this.glyphIterator.index at top = 1 feature = frac this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern (feature in this.glyphIterator.cur.features) = false +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 3 +glyph ids at top =450,480,555 +this.glyphIterator.index at top = 2 +feature = frac +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = false resetting iterator start while +++++++++++++++++++++++++++++ -glyphs.length at top = 2 -glyph ids at top =450,480 +glyphs.length at top = 3 +glyph ids at top =450,480,555 this.glyphIterator.index at top = 0 feature = frac this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern (feature in this.glyphIterator.cur.features) = false start while +++++++++++++++++++++++++++++ -glyphs.length at top = 2 -glyph ids at top =450,480 +glyphs.length at top = 3 +glyph ids at top =450,480,555 this.glyphIterator.index at top = 1 feature = frac this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern (feature in this.glyphIterator.cur.features) = false +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 3 +glyph ids at top =450,480,555 +this.glyphIterator.index at top = 2 +feature = frac +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = false resetting iterator start while +++++++++++++++++++++++++++++ -glyphs.length at top = 2 -glyph ids at top =450,480 +glyphs.length at top = 3 +glyph ids at top =450,480,555 this.glyphIterator.index at top = 0 feature = frac this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern (feature in this.glyphIterator.cur.features) = false start while +++++++++++++++++++++++++++++ -glyphs.length at top = 2 -glyph ids at top =450,480 +glyphs.length at top = 3 +glyph ids at top =450,480,555 this.glyphIterator.index at top = 1 feature = frac this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern (feature in this.glyphIterator.cur.features) = false +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 3 +glyph ids at top =450,480,555 +this.glyphIterator.index at top = 2 +feature = frac +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = false resetting iterator start while +++++++++++++++++++++++++++++ -glyphs.length at top = 2 -glyph ids at top =450,480 +glyphs.length at top = 3 +glyph ids at top =450,480,555 this.glyphIterator.index at top = 0 feature = liga this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern (feature in this.glyphIterator.cur.features) = true start lookup branch ================================== -glyph ids =450,480 -this.glyph ids =450,480 -glyphIterator.glyph ids =450,480 +glyph ids =450,480,555 +this.glyph ids =450,480,555 +glyphIterator.glyph ids =450,480,555 this.glyphIterator.index = 0 this.glyphIterator.cur.id = 450 this.glyphIterator.peekIndex() = 1 @@ -105,25 +140,48 @@ matched = 1 index = 1 characters = 102,105 ligatureGlyph.id = 731 -glyph ids before =450,480 +glyph ids before =450,480,555 this.glyphIterator.index = 0 -glyph ids after =731 +glyph ids after =731,555 this.glyphIterator.index = 0 incrementing iterator at bottom -this.glyphIterator.cur = bottom = null +this.glyphIterator.cur = bottom = [object Object] this.glyphIterator.index = bottom = 1 +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = liga +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +'GSUBProcessor:applyLookup 4 +---------------------------- +start ligature-substitution +lookupType = 4 +table.coverage.glyphs = 450 +forker = -1 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 resetting iterator start while +++++++++++++++++++++++++++++ -glyphs.length at top = 1 -glyph ids at top =731 +glyphs.length at top = 2 +glyph ids at top =731,555 this.glyphIterator.index at top = 0 feature = calt this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern (feature in this.glyphIterator.cur.features) = true start lookup branch ================================== -glyph ids =731 -this.glyph ids =731 -glyphIterator.glyph ids =731 +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 this.glyphIterator.index = 0 this.glyphIterator.cur.id = 731 this.glyphIterator.peekIndex() = 1 @@ -134,20 +192,43 @@ lookupType = 4 table.coverage.glyphs = 373,393,450,532,538,598,609,616,625,640,718,2127 forker = -1 incrementing iterator at bottom -this.glyphIterator.cur = bottom = null +this.glyphIterator.cur = bottom = [object Object] this.glyphIterator.index = bottom = 1 +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = calt +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +'GSUBProcessor:applyLookup 4 +---------------------------- +start ligature-substitution +lookupType = 4 +table.coverage.glyphs = 373,393,450,532,538,598,609,616,625,640,718,2127 +forker = -1 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 resetting iterator start while +++++++++++++++++++++++++++++ -glyphs.length at top = 1 -glyph ids at top =731 +glyphs.length at top = 2 +glyph ids at top =731,555 this.glyphIterator.index at top = 0 feature = calt this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern (feature in this.glyphIterator.cur.features) = true start lookup branch ================================== -glyph ids =731 -this.glyph ids =731 -glyphIterator.glyph ids =731 +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 this.glyphIterator.index = 0 this.glyphIterator.cur.id = 731 this.glyphIterator.peekIndex() = 1 @@ -156,20 +237,41 @@ this.glyphIterator.peekIndex() = 1 'GSUBProcessor:applyLookup 6 'GSUBProcessor:applyLookup 6 incrementing iterator at bottom -this.glyphIterator.cur = bottom = null +this.glyphIterator.cur = bottom = [object Object] this.glyphIterator.index = bottom = 1 +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = calt +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +'GSUBProcessor:applyLookup 6 +'GSUBProcessor:applyLookup 6 +'GSUBProcessor:applyLookup 6 +'GSUBProcessor:applyLookup 6 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 resetting iterator start while +++++++++++++++++++++++++++++ -glyphs.length at top = 1 -glyph ids at top =731 +glyphs.length at top = 2 +glyph ids at top =731,555 this.glyphIterator.index at top = 0 feature = calt this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern (feature in this.glyphIterator.cur.features) = true start lookup branch ================================== -glyph ids =731 -this.glyph ids =731 -glyphIterator.glyph ids =731 +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 this.glyphIterator.index = 0 this.glyphIterator.cur.id = 731 this.glyphIterator.peekIndex() = 1 @@ -178,26 +280,2016 @@ this.glyphIterator.peekIndex() = 1 'GSUBProcessor:applyLookup 6 'GSUBProcessor:applyLookup 6 incrementing iterator at bottom -this.glyphIterator.cur = bottom = null +this.glyphIterator.cur = bottom = [object Object] this.glyphIterator.index = bottom = 1 +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = calt +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +'GSUBProcessor:applyLookup 6 +'GSUBProcessor:applyLookup 6 +'GSUBProcessor:applyLookup 6 +'GSUBProcessor:applyLookup 6 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 resetting iterator start while +++++++++++++++++++++++++++++ -glyphs.length at top = 1 -glyph ids at top =731 +glyphs.length at top = 2 +glyph ids at top =731,555 this.glyphIterator.index at top = 0 feature = calt this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern (feature in this.glyphIterator.cur.features) = true start lookup branch ================================== -glyph ids =731 -this.glyph ids =731 -glyphIterator.glyph ids =731 +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 this.glyphIterator.index = 0 this.glyphIterator.cur.id = 731 this.glyphIterator.peekIndex() = 1 'GSUBProcessor:applyLookup 6 'GSUBProcessor:applyLookup 6 incrementing iterator at bottom +this.glyphIterator.cur = bottom = [object Object] +this.glyphIterator.index = bottom = 1 +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = calt +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +'GSUBProcessor:applyLookup 6 +'GSUBProcessor:applyLookup 6 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 +glyph ids =731,555 +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 0 +feature = kern +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 0 +this.glyphIterator.cur.id = 731 +this.glyphIterator.peekIndex() = 1 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = [object Object] +this.glyphIterator.index = bottom = 1 +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = kern +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 0 +feature = kern +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 0 +this.glyphIterator.cur.id = 731 +this.glyphIterator.peekIndex() = 1 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = [object Object] +this.glyphIterator.index = bottom = 1 +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = kern +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 0 +feature = kern +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 0 +this.glyphIterator.cur.id = 731 +this.glyphIterator.peekIndex() = 1 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = [object Object] +this.glyphIterator.index = bottom = 1 +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = kern +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 0 +feature = kern +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 0 +this.glyphIterator.cur.id = 731 +this.glyphIterator.peekIndex() = 1 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = [object Object] +this.glyphIterator.index = bottom = 1 +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = kern +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 0 +feature = mark +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 0 +this.glyphIterator.cur.id = 731 +this.glyphIterator.peekIndex() = 1 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = [object Object] +this.glyphIterator.index = bottom = 1 +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = mark +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 0 +feature = mark +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 0 +this.glyphIterator.cur.id = 731 +this.glyphIterator.peekIndex() = 1 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = [object Object] +this.glyphIterator.index = bottom = 1 +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = mark +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +incrementing iterator at bottom this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 0 +feature = mark +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 0 +this.glyphIterator.cur.id = 731 +this.glyphIterator.peekIndex() = 1 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = [object Object] this.glyphIterator.index = bottom = 1 -DONE WITH SUBS +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = mark +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 0 +feature = mkmk +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 0 +this.glyphIterator.cur.id = 731 +this.glyphIterator.peekIndex() = 1 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = [object Object] +this.glyphIterator.index = bottom = 1 +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = mkmk +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 0 +feature = mkmk +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 0 +this.glyphIterator.cur.id = 731 +this.glyphIterator.peekIndex() = 1 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = [object Object] +this.glyphIterator.index = bottom = 1 +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = mkmk +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 0 +feature = mkmk +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 0 +this.glyphIterator.cur.id = 731 +this.glyphIterator.peekIndex() = 1 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = [object Object] +this.glyphIterator.index = bottom = 1 +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = mkmk +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 0 +feature = mkmk +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 0 +this.glyphIterator.cur.id = 731 +this.glyphIterator.peekIndex() = 1 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = [object Object] +this.glyphIterator.index = bottom = 1 +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = mkmk +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 0 +feature = mkmk +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 0 +this.glyphIterator.cur.id = 731 +this.glyphIterator.peekIndex() = 1 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = [object Object] +this.glyphIterator.index = bottom = 1 +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = mkmk +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 +glyph ids =450,480,555 +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 3 +glyph ids at top =450,480,555 +this.glyphIterator.index at top = 0 +feature = numr +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = false +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 3 +glyph ids at top =450,480,555 +this.glyphIterator.index at top = 1 +feature = numr +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = false +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 3 +glyph ids at top =450,480,555 +this.glyphIterator.index at top = 2 +feature = numr +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = false +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 3 +glyph ids at top =450,480,555 +this.glyphIterator.index at top = 0 +feature = dnom +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = false +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 3 +glyph ids at top =450,480,555 +this.glyphIterator.index at top = 1 +feature = dnom +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = false +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 3 +glyph ids at top =450,480,555 +this.glyphIterator.index at top = 2 +feature = dnom +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = false +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 3 +glyph ids at top =450,480,555 +this.glyphIterator.index at top = 0 +feature = frac +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = false +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 3 +glyph ids at top =450,480,555 +this.glyphIterator.index at top = 1 +feature = frac +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = false +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 3 +glyph ids at top =450,480,555 +this.glyphIterator.index at top = 2 +feature = frac +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = false +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 3 +glyph ids at top =450,480,555 +this.glyphIterator.index at top = 0 +feature = frac +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = false +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 3 +glyph ids at top =450,480,555 +this.glyphIterator.index at top = 1 +feature = frac +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = false +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 3 +glyph ids at top =450,480,555 +this.glyphIterator.index at top = 2 +feature = frac +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = false +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 3 +glyph ids at top =450,480,555 +this.glyphIterator.index at top = 0 +feature = frac +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = false +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 3 +glyph ids at top =450,480,555 +this.glyphIterator.index at top = 1 +feature = frac +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = false +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 3 +glyph ids at top =450,480,555 +this.glyphIterator.index at top = 2 +feature = frac +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = false +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 3 +glyph ids at top =450,480,555 +this.glyphIterator.index at top = 0 +feature = liga +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =450,480,555 +this.glyph ids =450,480,555 +glyphIterator.glyph ids =450,480,555 +this.glyphIterator.index = 0 +this.glyphIterator.cur.id = 450 +this.glyphIterator.peekIndex() = 1 +'GSUBProcessor:applyLookup 4 +---------------------------- +start ligature-substitution +lookupType = 4 +table.coverage.glyphs = 450 +forker = 0 +table.ligatureSets.get(_index3) = [object Object],[object Object] +starting index = 0 +ligature.components = 480 +in match loop +idx = 0 +glyph.id = 480 +matched = 1 +index = 1 +characters = 102,105 +ligatureGlyph.id = 731 +glyph ids before =450,480,555 +this.glyphIterator.index = 0 +glyph ids after =731,555 +this.glyphIterator.index = 0 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = [object Object] +this.glyphIterator.index = bottom = 1 +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = liga +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +'GSUBProcessor:applyLookup 4 +---------------------------- +start ligature-substitution +lookupType = 4 +table.coverage.glyphs = 450 +forker = -1 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 0 +feature = calt +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 0 +this.glyphIterator.cur.id = 731 +this.glyphIterator.peekIndex() = 1 +'GSUBProcessor:applyLookup 4 +---------------------------- +start ligature-substitution +lookupType = 4 +table.coverage.glyphs = 373,393,450,532,538,598,609,616,625,640,718,2127 +forker = -1 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = [object Object] +this.glyphIterator.index = bottom = 1 +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = calt +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +'GSUBProcessor:applyLookup 4 +---------------------------- +start ligature-substitution +lookupType = 4 +table.coverage.glyphs = 373,393,450,532,538,598,609,616,625,640,718,2127 +forker = -1 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 0 +feature = calt +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 0 +this.glyphIterator.cur.id = 731 +this.glyphIterator.peekIndex() = 1 +'GSUBProcessor:applyLookup 6 +'GSUBProcessor:applyLookup 6 +'GSUBProcessor:applyLookup 6 +'GSUBProcessor:applyLookup 6 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = [object Object] +this.glyphIterator.index = bottom = 1 +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = calt +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +'GSUBProcessor:applyLookup 6 +'GSUBProcessor:applyLookup 6 +'GSUBProcessor:applyLookup 6 +'GSUBProcessor:applyLookup 6 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 0 +feature = calt +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 0 +this.glyphIterator.cur.id = 731 +this.glyphIterator.peekIndex() = 1 +'GSUBProcessor:applyLookup 6 +'GSUBProcessor:applyLookup 6 +'GSUBProcessor:applyLookup 6 +'GSUBProcessor:applyLookup 6 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = [object Object] +this.glyphIterator.index = bottom = 1 +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = calt +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +'GSUBProcessor:applyLookup 6 +'GSUBProcessor:applyLookup 6 +'GSUBProcessor:applyLookup 6 +'GSUBProcessor:applyLookup 6 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 0 +feature = calt +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 0 +this.glyphIterator.cur.id = 731 +this.glyphIterator.peekIndex() = 1 +'GSUBProcessor:applyLookup 6 +'GSUBProcessor:applyLookup 6 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = [object Object] +this.glyphIterator.index = bottom = 1 +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = calt +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +'GSUBProcessor:applyLookup 6 +'GSUBProcessor:applyLookup 6 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 +glyph ids =731,555 +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 0 +feature = kern +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 0 +this.glyphIterator.cur.id = 731 +this.glyphIterator.peekIndex() = 1 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = [object Object] +this.glyphIterator.index = bottom = 1 +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = kern +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 0 +feature = kern +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 0 +this.glyphIterator.cur.id = 731 +this.glyphIterator.peekIndex() = 1 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = [object Object] +this.glyphIterator.index = bottom = 1 +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = kern +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 0 +feature = kern +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 0 +this.glyphIterator.cur.id = 731 +this.glyphIterator.peekIndex() = 1 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = [object Object] +this.glyphIterator.index = bottom = 1 +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = kern +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 0 +feature = kern +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 0 +this.glyphIterator.cur.id = 731 +this.glyphIterator.peekIndex() = 1 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = [object Object] +this.glyphIterator.index = bottom = 1 +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = kern +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 0 +feature = mark +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 0 +this.glyphIterator.cur.id = 731 +this.glyphIterator.peekIndex() = 1 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = [object Object] +this.glyphIterator.index = bottom = 1 +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = mark +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 0 +feature = mark +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 0 +this.glyphIterator.cur.id = 731 +this.glyphIterator.peekIndex() = 1 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = [object Object] +this.glyphIterator.index = bottom = 1 +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = mark +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 0 +feature = mark +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 0 +this.glyphIterator.cur.id = 731 +this.glyphIterator.peekIndex() = 1 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = [object Object] +this.glyphIterator.index = bottom = 1 +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = mark +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 0 +feature = mkmk +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 0 +this.glyphIterator.cur.id = 731 +this.glyphIterator.peekIndex() = 1 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = [object Object] +this.glyphIterator.index = bottom = 1 +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = mkmk +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 0 +feature = mkmk +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 0 +this.glyphIterator.cur.id = 731 +this.glyphIterator.peekIndex() = 1 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = [object Object] +this.glyphIterator.index = bottom = 1 +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = mkmk +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 0 +feature = mkmk +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 0 +this.glyphIterator.cur.id = 731 +this.glyphIterator.peekIndex() = 1 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = [object Object] +this.glyphIterator.index = bottom = 1 +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = mkmk +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 0 +feature = mkmk +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 0 +this.glyphIterator.cur.id = 731 +this.glyphIterator.peekIndex() = 1 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = [object Object] +this.glyphIterator.index = bottom = 1 +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = mkmk +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 0 +feature = mkmk +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 0 +this.glyphIterator.cur.id = 731 +this.glyphIterator.peekIndex() = 1 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = [object Object] +this.glyphIterator.index = bottom = 1 +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = mkmk +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 +glyph ids =450,480,555 +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 3 +glyph ids at top =450,480,555 +this.glyphIterator.index at top = 0 +feature = numr +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = false +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 3 +glyph ids at top =450,480,555 +this.glyphIterator.index at top = 1 +feature = numr +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = false +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 3 +glyph ids at top =450,480,555 +this.glyphIterator.index at top = 2 +feature = numr +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = false +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 3 +glyph ids at top =450,480,555 +this.glyphIterator.index at top = 0 +feature = dnom +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = false +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 3 +glyph ids at top =450,480,555 +this.glyphIterator.index at top = 1 +feature = dnom +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = false +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 3 +glyph ids at top =450,480,555 +this.glyphIterator.index at top = 2 +feature = dnom +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = false +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 3 +glyph ids at top =450,480,555 +this.glyphIterator.index at top = 0 +feature = frac +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = false +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 3 +glyph ids at top =450,480,555 +this.glyphIterator.index at top = 1 +feature = frac +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = false +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 3 +glyph ids at top =450,480,555 +this.glyphIterator.index at top = 2 +feature = frac +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = false +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 3 +glyph ids at top =450,480,555 +this.glyphIterator.index at top = 0 +feature = frac +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = false +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 3 +glyph ids at top =450,480,555 +this.glyphIterator.index at top = 1 +feature = frac +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = false +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 3 +glyph ids at top =450,480,555 +this.glyphIterator.index at top = 2 +feature = frac +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = false +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 3 +glyph ids at top =450,480,555 +this.glyphIterator.index at top = 0 +feature = frac +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = false +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 3 +glyph ids at top =450,480,555 +this.glyphIterator.index at top = 1 +feature = frac +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = false +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 3 +glyph ids at top =450,480,555 +this.glyphIterator.index at top = 2 +feature = frac +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = false +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 3 +glyph ids at top =450,480,555 +this.glyphIterator.index at top = 0 +feature = liga +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =450,480,555 +this.glyph ids =450,480,555 +glyphIterator.glyph ids =450,480,555 +this.glyphIterator.index = 0 +this.glyphIterator.cur.id = 450 +this.glyphIterator.peekIndex() = 1 +'GSUBProcessor:applyLookup 4 +---------------------------- +start ligature-substitution +lookupType = 4 +table.coverage.glyphs = 450 +forker = 0 +table.ligatureSets.get(_index3) = [object Object],[object Object] +starting index = 0 +ligature.components = 480 +in match loop +idx = 0 +glyph.id = 480 +matched = 1 +index = 1 +characters = 102,105 +ligatureGlyph.id = 731 +glyph ids before =450,480,555 +this.glyphIterator.index = 0 +glyph ids after =731,555 +this.glyphIterator.index = 0 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = [object Object] +this.glyphIterator.index = bottom = 1 +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = liga +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +'GSUBProcessor:applyLookup 4 +---------------------------- +start ligature-substitution +lookupType = 4 +table.coverage.glyphs = 450 +forker = -1 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 0 +feature = calt +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 0 +this.glyphIterator.cur.id = 731 +this.glyphIterator.peekIndex() = 1 +'GSUBProcessor:applyLookup 4 +---------------------------- +start ligature-substitution +lookupType = 4 +table.coverage.glyphs = 373,393,450,532,538,598,609,616,625,640,718,2127 +forker = -1 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = [object Object] +this.glyphIterator.index = bottom = 1 +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = calt +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +'GSUBProcessor:applyLookup 4 +---------------------------- +start ligature-substitution +lookupType = 4 +table.coverage.glyphs = 373,393,450,532,538,598,609,616,625,640,718,2127 +forker = -1 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 0 +feature = calt +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 0 +this.glyphIterator.cur.id = 731 +this.glyphIterator.peekIndex() = 1 +'GSUBProcessor:applyLookup 6 +'GSUBProcessor:applyLookup 6 +'GSUBProcessor:applyLookup 6 +'GSUBProcessor:applyLookup 6 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = [object Object] +this.glyphIterator.index = bottom = 1 +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = calt +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +'GSUBProcessor:applyLookup 6 +'GSUBProcessor:applyLookup 6 +'GSUBProcessor:applyLookup 6 +'GSUBProcessor:applyLookup 6 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 0 +feature = calt +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 0 +this.glyphIterator.cur.id = 731 +this.glyphIterator.peekIndex() = 1 +'GSUBProcessor:applyLookup 6 +'GSUBProcessor:applyLookup 6 +'GSUBProcessor:applyLookup 6 +'GSUBProcessor:applyLookup 6 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = [object Object] +this.glyphIterator.index = bottom = 1 +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = calt +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +'GSUBProcessor:applyLookup 6 +'GSUBProcessor:applyLookup 6 +'GSUBProcessor:applyLookup 6 +'GSUBProcessor:applyLookup 6 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 0 +feature = calt +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 0 +this.glyphIterator.cur.id = 731 +this.glyphIterator.peekIndex() = 1 +'GSUBProcessor:applyLookup 6 +'GSUBProcessor:applyLookup 6 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = [object Object] +this.glyphIterator.index = bottom = 1 +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = calt +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +'GSUBProcessor:applyLookup 6 +'GSUBProcessor:applyLookup 6 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 +glyph ids =731,555 +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 0 +feature = kern +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 0 +this.glyphIterator.cur.id = 731 +this.glyphIterator.peekIndex() = 1 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = [object Object] +this.glyphIterator.index = bottom = 1 +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = kern +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 0 +feature = kern +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 0 +this.glyphIterator.cur.id = 731 +this.glyphIterator.peekIndex() = 1 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = [object Object] +this.glyphIterator.index = bottom = 1 +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = kern +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 0 +feature = kern +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 0 +this.glyphIterator.cur.id = 731 +this.glyphIterator.peekIndex() = 1 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = [object Object] +this.glyphIterator.index = bottom = 1 +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = kern +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 0 +feature = kern +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 0 +this.glyphIterator.cur.id = 731 +this.glyphIterator.peekIndex() = 1 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = [object Object] +this.glyphIterator.index = bottom = 1 +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = kern +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 0 +feature = mark +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 0 +this.glyphIterator.cur.id = 731 +this.glyphIterator.peekIndex() = 1 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = [object Object] +this.glyphIterator.index = bottom = 1 +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = mark +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 0 +feature = mark +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 0 +this.glyphIterator.cur.id = 731 +this.glyphIterator.peekIndex() = 1 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = [object Object] +this.glyphIterator.index = bottom = 1 +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = mark +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 0 +feature = mark +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 0 +this.glyphIterator.cur.id = 731 +this.glyphIterator.peekIndex() = 1 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = [object Object] +this.glyphIterator.index = bottom = 1 +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = mark +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 0 +feature = mkmk +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 0 +this.glyphIterator.cur.id = 731 +this.glyphIterator.peekIndex() = 1 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = [object Object] +this.glyphIterator.index = bottom = 1 +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = mkmk +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 0 +feature = mkmk +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 0 +this.glyphIterator.cur.id = 731 +this.glyphIterator.peekIndex() = 1 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = [object Object] +this.glyphIterator.index = bottom = 1 +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = mkmk +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 0 +feature = mkmk +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 0 +this.glyphIterator.cur.id = 731 +this.glyphIterator.peekIndex() = 1 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = [object Object] +this.glyphIterator.index = bottom = 1 +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = mkmk +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 0 +feature = mkmk +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 0 +this.glyphIterator.cur.id = 731 +this.glyphIterator.peekIndex() = 1 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = [object Object] +this.glyphIterator.index = bottom = 1 +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = mkmk +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 +resetting iterator +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 0 +feature = mkmk +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 0 +this.glyphIterator.cur.id = 731 +this.glyphIterator.peekIndex() = 1 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = [object Object] +this.glyphIterator.index = bottom = 1 +start while +++++++++++++++++++++++++++++ +glyphs.length at top = 2 +glyph ids at top =731,555 +this.glyphIterator.index at top = 1 +feature = mkmk +this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern +(feature in this.glyphIterator.cur.features) = true +start lookup branch ================================== +glyph ids =731,555 +this.glyph ids =731,555 +glyphIterator.glyph ids =731,555 +this.glyphIterator.index = 1 +this.glyphIterator.cur.id = 555 +this.glyphIterator.peekIndex() = 2 +incrementing iterator at bottom +this.glyphIterator.cur = bottom = null +this.glyphIterator.index = bottom = 2 diff --git a/pitfall/pitfall/test/test16.coffee b/pitfall/pitfall/test/test16.coffee index 23e2d7b5..6a3e814f 100644 --- a/pitfall/pitfall/test/test16.coffee +++ b/pitfall/pitfall/test/test16.coffee @@ -9,7 +9,7 @@ make = (doc) -> # Set the font, draw some text doc.font('the-font') .fontSize(100) - .text('fi', 100, 100, {width: false}) + .text('Wofine', 100, 100, {width: false}) doc.end() diff --git a/pitfall/pitfall/test/test16.pdf b/pitfall/pitfall/test/test16.pdf index cb6ee514..50db0c96 100644 Binary files a/pitfall/pitfall/test/test16.pdf and b/pitfall/pitfall/test/test16.pdf differ diff --git a/pitfall/pitfall/test/test16.rkt b/pitfall/pitfall/test/test16.rkt index 0f767d4a..07169e14 100644 --- a/pitfall/pitfall/test/test16.rkt +++ b/pitfall/pitfall/test/test16.rkt @@ -12,7 +12,7 @@ (send* doc [font "the-font"] [fontSize 100] - [text "afic" 100 100 (hash 'width #f)])) + [text "Wofine" 100 100 (hash 'width #f)])) (define-runtime-path this "test16rkt.pdf") diff --git a/pitfall/pitfall/test/test16rkt.pdf b/pitfall/pitfall/test/test16rkt.pdf index db1d11b5..a2bb9ba8 100644 Binary files a/pitfall/pitfall/test/test16rkt.pdf and b/pitfall/pitfall/test/test16rkt.pdf differ