From 7609fd112622a0c750eff6c69fc22065a89f6bc2 Mon Sep 17 00:00:00 2001 From: Matthew Butterick Date: Fri, 7 Jul 2017 16:16:17 -0700 Subject: [PATCH] position amiss --- pitfall/fontkit/gsub-processor.rkt | 144 +- pitfall/fontkit/shaping-plan.rkt | 1 + pitfall/pitfall/test/out.bin | Bin 3994 -> 4522 bytes pitfall/pitfall/test/out.txt | 2198 +++++++++++++++++++++++++++- pitfall/pitfall/test/test16.coffee | 2 +- pitfall/pitfall/test/test16.pdf | Bin 5890 -> 6485 bytes pitfall/pitfall/test/test16.rkt | 2 +- pitfall/pitfall/test/test16rkt.pdf | Bin 5892 -> 6492 bytes 8 files changed, 2224 insertions(+), 123 deletions(-) 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 788641abc384272eeca7f6c9ded023529df9b5f1..809e60448b022a1ba4ed3b1cbb5e11e4abad23c8 100644 GIT binary patch delta 669 zcmXv~K~ED=5T2R0yVa!-x=XiE1u07*rX)%iYP2SgGzbPM-lpw&bmEG`akTW9Q0R(Q9%=-+8+bR+!8{ z1-_w%^Y{Ufxw21~rD~MlpQbtlA!hfe0TMtsB?%&$bCCP)LRQm4TDz=vC1R!!rm%F~ zzx49K(`T!%@{ei@FP`McIXs~H;X7LP0R-v4zeuGhv_J%g?6Wcofv$vz%MK8M%L)pR z4NeCEf{~!1wR5N1uc+Y!7~u}Z>>C&zNm+^#?l7!mYIJ14#GTEu=WUg}%;ZGI2Ss#l<@bM zE2AVWA6Mq=R@SM57Sc^!Q9FHYAv45c`jh}CRwR|O@cqr%p~TR5_v}QVXVzj%^G@SA zdY6Wi=NdI?%O!?+NYfJh!J@*@4VHcW1lxNO326#smMg;|NRn__3R{FoF8frVtQL>= z_k|QSnt(ve@XfdoIkG2ZC5`Z4Q%#IVH$ExTR|dyyGd{Dlx;0W5E8V|+)xJ0`^A<4N rywQ~$+pf%1uh%v^Z{_oIKzmRYDTq=A(sUVGX%Y%#LV90FZ(9BV6h(P? delta 140 zcmZ3bJWGCpbu3$MVnqQ11pEO~3dv<93J@-%43NH5P?QRlXM6|b?@Z6BOoPZXEoWe0 z49UnXsetgAe*VHE=-kY?J<#puH{S&d~a2h%KuY9<>7 K-p#^n)42hP8yZXi 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 cb6ee514c6031da03af5734f2453b692787bf92b..50db0c9650f6490769b8eb6e24059c9c3d7f82f3 100644 GIT binary patch delta 1011 zcmZWnT}u>U6h7~nkIiuncgLO8tz_JFl~~F79yg^n%RbyK&16egFI>ODH8Ckaz=bG6 zDAESHsOYl0Xh90vKvL-yTWJR%(UOeuR={#oF%L`QQ6Kj~7=2Y>g zhxZpo7Uy8+5SEfWdVN9ump4-WFgHJ5uK%L>>&cm=39pVX0GP~FVPVnBx!;s)C*~## zUe1e7i60K}H0y&^cte6@h&%&AbAB`8%V04=2OPu__@N58w~`rC>Gf6dHLUlmIDI!^fgcreWzkAF7db%`%Oq z7};1_DHN7h3SH;UcDcZaQ(S%M;?&gCCu>Qf#w!Faqe8sLRU0(=dUYla>EXOE?8QmENe(?CaWKj$wT zZ|+RR;(ent%SOI)YWC8JRPrQ8w}6z(N_AT2`f6YC%-T}z#cXx}@DZ#q7DTWM+OY$w z@EqhZ2JM>%g!h$UQ+I!3dgNJI*a;NXXtN(k=Zm_b>@F#~t?#~5&E%dt#jwoXeTrr8 nS*5fkjsJZM^CQzUp73oXRwaJkxRp2F8$#+>#0ipZPbC=140@ z&xP<=m?wW`i{)hk@`4yvF)#vYrp>ABK1`Dvxz=(p&0?r#vSHxeoX2yHTinFV66j7K zP{>o@0y7K@O^ggC2TS8P8ljS9~xlMtg%%!U8>hHz{0I6hL&Hw-a 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 db1d11b5d60baa0ad191d76942ff6c1766dc1ff0..a2bb9ba80ed336f649eac60a065331c598c8bddb 100644 GIT binary patch delta 972 zcmZWo-%Aux6h8Of*|Ek|c6WAXbxRu^*N8Qn->WIMX_mQ`w#kx>J-Gf_$TcacEO2`$ zN+`+(>Lq$C2m(P8>Y+cP-lCU?9(w2@h@Q$i<7@ZkDrLzTN#Rn;+#9(k|kQxmDxBfEX%HfLJ8?!G0h<=WY~r5W(!82}q9O)4`c#v` zn8FNE^e%em-1QrCck>rk&fLB{Fy z`i~Cudr1>+dHI2thl<77Sufodwq7m(kT1Aegku|_Y6^r5X4j%4r!pdz%n5LmvGFYR zKW;}R4j#o8=L87HP5tSNWol5Q2$8U;h`dne2@5M>RMN~>VPV8=+aQmJN83_ueGQ`n zRgI$tP2{uX&6}jOU(@$(uF%?%l!ilmKgeek6@vyaGU_(;b~~Yj4nhFs24Dg>jyWg= z{UL-pXi|X=MUu&u<}fcLQc%?-c}}F`6>n@qmtwnpHBC5r^ErR~!0wEa+?$)6yJ8l4 zi}NQBW;*)(Yh&Z&G30q!*eX<8y)O-uPIp9#<~r1WyQ+x_{&~YvO>YIp-zk=E Y{Wlp!TkeL`S8Z!)Q%ENJhYt(C0oD__4oIs2xhYV-6OcAbD@f0U@`3uerze+{C_wmp{6P9r zK~XBye7=W3;}~`V1%nt?OU1f!^-okFyY0T9?J04Xyw1t4L$`LI|$qnN3wp*fHX1PXZyTwsQQ zsmbIB3IB9sBSUl<17lMo3^5ZE6Lc{X6H5aOF>?b9^MJ~XC-X@