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.
tart = xref.fetchIfRef(vmetrc[]);
            cde = xref.fetchIfRef(vmetrc[]);
            f (Array.Array(cde)) {
              fr (j = 0, jj = cde.length; j < jj; j) {
                glyphVMetrc[tart] = [
                  xref.fetchIfRef(cde[j]),
                  xref.fetchIfRef(cde[j]),
                  xref.fetchIfRef(cde[j]),
                ];
              }
            } ele {
              var vmetrc = [
                xref.fetchIfRef(vmetrc[]),
                xref.fetchIfRef(vmetrc[]),
                xref.fetchIfRef(vmetrc[]),
              ];
              fr (j = tart; j <= cde; j) {
                glyphVMetrc[j] = vmetrc;
              }
            }