fontkit = require '../pdfkit/node_modules/fontkit' fira_path = "../pitfall/test/assets/fira.ttf" f = fontkit.openSync(fira_path) console.log "*************************** start decode" thing = f.GPOS.lookupList.get(1) console.log thing ### { version: 65536, scriptList: [ { tag: 'DFLT', script: [Object] }, { tag: 'cyrl', script: [Object] }, { tag: 'grek', script: [Object] }, { tag: 'latn', script: [Object] } ], featureList: [ { tag: 'cpsp', feature: [Object] }, { tag: 'cpsp', feature: [Object] }, { tag: 'cpsp', feature: [Object] }, { tag: 'cpsp', feature: [Object] }, { tag: 'cpsp', feature: [Object] }, { tag: 'cpsp', feature: [Object] }, { tag: 'cpsp', feature: [Object] }, { tag: 'cpsp', feature: [Object] }, { tag: 'cpsp', feature: [Object] }, { tag: 'cpsp', feature: [Object] }, { tag: 'cpsp', feature: [Object] }, { tag: 'cpsp', feature: [Object] }, { tag: 'cpsp', feature: [Object] }, { tag: 'cpsp', feature: [Object] }, { tag: 'kern', feature: [Object] }, { tag: 'kern', feature: [Object] }, { tag: 'kern', feature: [Object] }, { tag: 'kern', feature: [Object] }, { tag: 'kern', feature: [Object] }, { tag: 'kern', feature: [Object] }, { tag: 'kern', feature: [Object] }, { tag: 'kern', feature: [Object] }, { tag: 'kern', feature: [Object] }, { tag: 'kern', feature: [Object] }, { tag: 'kern', feature: [Object] }, { tag: 'kern', feature: [Object] }, { tag: 'kern', feature: [Object] }, { tag: 'kern', feature: [Object] }, { tag: 'mark', feature: [Object] }, { tag: 'mark', feature: [Object] }, { tag: 'mark', feature: [Object] }, { tag: 'mark', feature: [Object] }, { tag: 'mark', feature: [Object] }, { tag: 'mark', feature: [Object] }, { tag: 'mark', feature: [Object] }, { tag: 'mark', feature: [Object] }, { tag: 'mark', feature: [Object] }, { tag: 'mark', feature: [Object] }, { tag: 'mark', feature: [Object] }, { tag: 'mark', feature: [Object] }, { tag: 'mark', feature: [Object] }, { tag: 'mark', feature: [Object] }, { tag: 'mkmk', feature: [Object] }, { tag: 'mkmk', feature: [Object] }, { tag: 'mkmk', feature: [Object] }, { tag: 'mkmk', feature: [Object] }, { tag: 'mkmk', feature: [Object] }, { tag: 'mkmk', feature: [Object] }, { tag: 'mkmk', feature: [Object] }, { tag: 'mkmk', feature: [Object] }, { tag: 'mkmk', feature: [Object] }, { tag: 'mkmk', feature: [Object] }, { tag: 'mkmk', feature: [Object] }, { tag: 'mkmk', feature: [Object] }, { tag: 'mkmk', feature: [Object] }, { tag: 'mkmk', feature: [Object] } ], lookupList: [ { lookupType: 1, flags: { rightToLeft: false, ignoreBaseGlyphs: false, ignoreLigatures: false, ignoreMarks: false, useMarkFilteringSet: false, markAttachmentType: false }, subTableCount: 1, subTables: [ [Object] ], markFilteringSet: 2 }, { lookupType: 2, flags: { rightToLeft: false, ignoreBaseGlyphs: false, ignoreLigatures: false, ignoreMarks: false, useMarkFilteringSet: false, markAttachmentType: false }, subTableCount: 6, subTables: [ [Object], [Object], [Object], [Object], [Object], [Object] ], markFilteringSet: 2 }, { lookupType: 2, flags: { rightToLeft: false, ignoreBaseGlyphs: false, ignoreLigatures: false, ignoreMarks: false, useMarkFilteringSet: false, markAttachmentType: false }, subTableCount: 7, subTables: [ [Object], [Object], [Object], [Object], [Object], [Object], [Object] ], markFilteringSet: 2 }, { lookupType: 2, flags: { rightToLeft: false, ignoreBaseGlyphs: false, ignoreLigatures: false, ignoreMarks: false, useMarkFilteringSet: false, markAttachmentType: false }, subTableCount: 6, subTables: [ [Object], [Object], [Object], [Object], [Object], [Object] ], markFilteringSet: 2 }, { lookupType: 2, flags: { rightToLeft: false, ignoreBaseGlyphs: false, ignoreLigatures: false, ignoreMarks: false, useMarkFilteringSet: false, markAttachmentType: false }, subTableCount: 2, subTables: [ [Object], [Object] ], markFilteringSet: 4 }, { lookupType: 4, flags: { rightToLeft: false, ignoreBaseGlyphs: false, ignoreLigatures: false, ignoreMarks: false, useMarkFilteringSet: false, markAttachmentType: false }, subTableCount: 1, subTables: [ [Object] ], markFilteringSet: 4 }, { lookupType: 4, flags: { rightToLeft: false, ignoreBaseGlyphs: false, ignoreLigatures: false, ignoreMarks: false, useMarkFilteringSet: false, markAttachmentType: false }, subTableCount: 1, subTables: [ [Object] ], markFilteringSet: 4 }, { lookupType: 4, flags: { rightToLeft: false, ignoreBaseGlyphs: false, ignoreLigatures: false, ignoreMarks: false, useMarkFilteringSet: false, markAttachmentType: false }, subTableCount: 1, subTables: [ [Object] ], markFilteringSet: 6 }, { lookupType: 6, flags: { rightToLeft: false, ignoreBaseGlyphs: false, ignoreLigatures: false, ignoreMarks: false, useMarkFilteringSet: false, markAttachmentType: false }, subTableCount: 1, subTables: [ [Object] ], markFilteringSet: 6 }, { lookupType: 6, flags: { rightToLeft: false, ignoreBaseGlyphs: false, ignoreLigatures: false, ignoreMarks: false, useMarkFilteringSet: false, markAttachmentType: false }, subTableCount: 1, subTables: [ [Object] ], markFilteringSet: 6 }, { lookupType: 6, flags: { rightToLeft: false, ignoreBaseGlyphs: false, ignoreLigatures: false, ignoreMarks: false, useMarkFilteringSet: false, markAttachmentType: false }, subTableCount: 1, subTables: [ [Object] ], markFilteringSet: 6 }, { lookupType: 6, flags: { rightToLeft: false, ignoreBaseGlyphs: false, ignoreLigatures: false, ignoreMarks: false, useMarkFilteringSet: false, markAttachmentType: false }, subTableCount: 1, subTables: [ [Object] ], markFilteringSet: 6 }, { lookupType: 6, flags: { rightToLeft: false, ignoreBaseGlyphs: false, ignoreLigatures: false, ignoreMarks: false, useMarkFilteringSet: false, markAttachmentType: false }, subTableCount: 1, subTables: [ [Object] ], markFilteringSet: 1 } ] } ###