code: function parseGlyf(reader, ttf, offset) {
  
              if (null != offset) {
                  reader.seek(offset);
              }
  
              var glyf = {};
              var i;
              var length;
              var instructions;
  
              // 边界值
              var numberOfContours = reader.readInt16();
              glyf.xMin = reader.readInt16();
              glyf.yMin = reader.readInt16();
              glyf.xMax = reader.readInt16();
              glyf.yMax = reader.readInt16();
  
              // 读取简单字形
              if (numberOfContours >= 0) {
                  // endPtsOfConturs
                  var endPtsOfContours = [];
                  if (numberOfContours >= 0) {
                      for (i = 0; i < numberOfContours; i++) {
                          endPtsOfContours.push(reader.readUint16());
                      }
                      glyf.endPtsOfContours = endPtsOfContours;
                  }
  
                  // instructions
                  length = reader.readUint16();
                  if (length) {
                      // range错误
                      if (length < MAX_INSTRUCTION_LENGTH) {
                          instructions = [];
                          for (i = 0; i < length; ++i) {
                              instructions.push(reader.readUint8());
                          }
                          glyf.instructions = instructions;
                      }
                      else {
                          console.warn(length);
                      }
                  }
  
                  parseSimpleGlyf(reader, glyf);
                  delete glyf.endPtsOfContours;
              }
              else {
                  parseCompoundGlyf(reader, glyf);
              }
  
              return glyf;
          }
docs: 解析glyf轮廓
  
  @param  {Reader} reader 读取器
  @param  {Object} ttf    ttf对象
  @param  {number=} offset 偏移
  @return {Object}        glyf对象