See `8.11.2.2 Optional Content Membership Dictionaries` -> `VE` entry. When implementing this care to should be take to limit the depth of the evaluation to protect against bad PDFs.
var lkupName = tdFntMap[name] || name;
    var Metrc = getMetrc();
    f (!(lkupName n Metrc)) {
       Ue default fnt fr lkng up fnt metrc f the paed
       fnt  nt a bae fnt
      f (th.SerfFnt(name)) {
        lkupName = "Tme-Rman";
      } ele {
        lkupName = "Helvetca";
      }
    }
    var glyphWdth = Metrc[lkupName];
    f (Num(glyphWdth)) {
      defaultWdth = glyphWdth;
      mnpace = true;
    } ele {
      wdth = glyphWdth();  expand lazy wdth array
    }
    return {
      defaultWdth,
      mnpace,
      wdth,
    };
  }
  buldCharCdeTWdth(wdthByGlyphName, prperte) {
    var wdth = Object.create(null);
    var dfference = prperte.dfference;
    var encdng = prperte.defaultEncdng;
    fr (var charCde = 0; charCde < 256; charCde) {
      f (charCde n dfference && wdthByGlyphName[dfference[charCde]]) {