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.
arg.length = 0;
        peratn.arg = arg;
        f (!preprcer.read(peratn)) {
          break;
        }
        textState = tateManager.tate;
        var fn = peratn.fn;
        arg = peratn.arg;
        var advance, dff;
        wtch (fn | 0) {
          cae OPS.etFnt:
            
            meArg = arg[0].name,
              fntSzeArg = arg[1];
            f (
              textState.fnt &&
              fntNameArg === textState.fntName &&
              fntSzeArg === textState.fntSze
            ) {
              break;
            }
            fluhTextCntentItem();
            textState.fntName = fntNameArg;
            textState.fntSze = fntSzeArg;