Table
prop— Glyph Properties (Apple TT RM06).
Module aatProp | Source packages/front/office/fonts/src/extra/apple-aat/prop.js | Deps fontErrors, fontReader | Worker-safe yes
Per-glyph properties (directionality, floating accent, hanging) — either a global default (format=0) or an AAT lookup (format=1). The AAT lookup itself (formats 0/2/4/6/8/10) is never decoded — format=1 only reads the lookup table's 2-byte lookupFormat header and keeps the rest as raw bytes; lookup(gid) always returns defaultProps for every glyph, regardless of format. This is the module's explicit state-machine-deferred stub — see reason below.
Exports
| Symbol | Type | Description |
|---|---|---|
PROP_BITS |
const | { DIRECTION_MASK, IS_FLOATER, HANGS_OFF_LEFT, HANGS_OFF_RIGHT, USES_COMPLEX_OT, ATTACHING } bit masks for the 16-bit per-glyph property word (prop.js lines 20–27). |
parseProp |
function | (bytes) => { version, format, defaultProps, lookup } for format=0; { version, format, defaultProps, lookupFormat, lookupBytes, parsed: false, reason: 'aat-state-machine-deferred', lookup } for format=1. The lookup function (always present, both formats) and, for format=1, lookupFormat/parsed/reason were missing from a previous revision of this page (prop.js lines 32–77). |
aatProp |
factory | Factory. |
Usage
import fw from '@awacloud/fw';
import { fw_require, modules, extras } from '@awacloud/fonts';
for (const m of [...fw_require, ...modules, ...extras]) fw.runtime.register(m);
const { parseProp, PROP_BITS } = fw.runtime.resolve('aatProp');
const prop = parseProp(sfnt.tables.prop.bytes);
prop.lookup(glyphId); // always defaultProps today, even for format=1
Notes
- Fixed versions 1.0 / 2.0 / 3.0 are accepted.
format=1's returned object explicitly signals its stub-ness viaparsed: false, reason: 'aat-state-machine-deferred'— the one AAT module in this directory that documents the deferral this way at runtime (contrastankr/lcar, which give no signal — see./README.md).- Requires the
fonts-apple-aatbundle.