code: function FileDescriptorProto(properties) {
                  this.dependency = [];
                  this.publicDependency = [];
                  this.weakDependency = [];
                  this.messageType = [];
                  this.enumType = [];
                  this.service = [];
                  this.extension = [];
                  if (properties)
                      for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                          if (properties[keys[i]] != null)
                              this[keys[i]] = properties[keys[i]];
              }
docs: Properties of a FileDescriptorProto.
  @memberof google.protobuf
  @interface IFileDescriptorProto
  @property {string|null} [name] FileDescriptorProto name
  @property {string|null} ["package"] FileDescriptorProto package
  @property {Array.<string>|null} [dependency] FileDescriptorProto dependency
  @property {Array.<number>|null} [publicDependency] FileDescriptorProto publicDependency
  @property {Array.<number>|null} [weakDependency] FileDescriptorProto weakDependency
  @property {Array.<google.protobuf.IDescriptorProto>|null} [messageType] FileDescriptorProto messageType
  @property {Array.<google.protobuf.IEnumDescriptorProto>|null} [enumType] FileDescriptorProto enumType
  @property {Array.<google.protobuf.IServiceDescriptorProto>|null} [service] FileDescriptorProto service
  @property {Array.<google.protobuf.IFieldDescriptorProto>|null} [extension] FileDescriptorProto extension
  @property {google.protobuf.IFileOptions|null} [options] FileDescriptorProto options
  @property {google.protobuf.ISourceCodeInfo|null} [sourceCodeInfo] FileDescriptorProto sourceCodeInfo
  @property {string|null} [syntax] FileDescriptorProto syntax
   
  Constructs a new FileDescriptorProto.
  @memberof google.protobuf
  @classdesc Represents a FileDescriptorProto.
  @implements IFileDescriptorProto
  @constructor
  @param {google.protobuf.IFileDescriptorProto=} [properties] Properties to set