# Global Metrics

path: .metrics.nom.functions
old: 4.0
new: 1.0
path: .metrics.nom.total
old: 4.0
new: 1.0
path: .metrics.nargs.sum
old: 3.0
new: 0.0
path: .metrics.nargs.average
old: 0.75
new: 0.0
path: .metrics.loc.cloc
old: 33.0
new: 13.0
path: .metrics.loc.blank
old: 16.0
new: 8.0
path: .metrics.loc.ploc
old: 41.0
new: 24.0
path: .metrics.loc.sloc
old: 90.0
new: 45.0
path: .metrics.loc.lloc
old: 5.0
new: 0.0
path: .metrics.mi.mi_sei
old: 51.23077214418962
new: 72.5839588279303
path: .metrics.mi.mi_original
old: 59.469089901671225
new: 76.65213850005698
path: .metrics.mi.mi_visual_studio
old: 34.777245556532876
new: 44.82581198833741
path: .metrics.halstead.vocabulary
old: 70.0
new: 33.0
path: .metrics.halstead.effort
old: 12582.303618694026
new: 3836.261727772104
path: .metrics.halstead.N2
old: 78.0
new: 30.0
path: .metrics.halstead.volume
old: 1182.9516222703785
new: 393.46274130995937
path: .metrics.halstead.bugs
old: 0.18032344085030305
new: 0.0816866146725798
path: .metrics.halstead.N1
old: 115.0
new: 48.0
path: .metrics.halstead.time
old: 699.0168677052237
new: 213.12565154289464
path: .metrics.halstead.difficulty
old: 10.636363636363637
new: 9.75
path: .metrics.halstead.length
old: 193.0
new: 78.0
path: .metrics.halstead.n1
old: 15.0
new: 13.0
path: .metrics.halstead.purity_ratio
old: 1.9511820890050988
new: 1.724926644020275
path: .metrics.halstead.estimated_program_length
old: 376.5781431779841
new: 134.54427823358145
path: .metrics.halstead.level
old: 0.09401709401709402
new: 0.10256410256410256
path: .metrics.halstead.n2
old: 55.0
new: 20.0
path: .metrics.cyclomatic.sum
old: 8.0
new: 7.0
path: .metrics.nexits.average
old: 1.0
new: 0.0
path: .metrics.nexits.sum
old: 4.0
new: 0.0

# Spaces Data

## Minimal test - lines (23, 41)

path: .spaces[0].spaces[2].metrics.mi.mi_visual_studio
old: 89.06530020579255
new: 54.46258681468699
path: .spaces[0].spaces[2].metrics.mi.mi_original
old: 152.30166335190526
new: 93.13102345311476
path: .spaces[0].spaces[2].metrics.mi.mi_sei
old: 144.12582230432585
new: 87.73434731831698
path: .spaces[0].spaces[2].metrics.halstead.bugs
old: 0.008964922118925448
new: 0.06758854360822535
path: .spaces[0].spaces[2].metrics.halstead.time
old: 7.748705559081208
new: 160.4054092326554
path: .spaces[0].spaces[2].metrics.halstead.level
old: 0.25
new: 0.1048951048951049
path: .spaces[0].spaces[2].metrics.halstead.purity_ratio
old: 1.842242046044582
new: 1.693794845554952
path: .spaces[0].spaces[2].metrics.halstead.volume
old: 34.86917501586544
new: 302.86336008962905
path: .spaces[0].spaces[2].metrics.halstead.n2
old: 3.0
new: 15.0
path: .spaces[0].spaces[2].metrics.halstead.vocabulary
old: 9.0
new: 28.0
path: .spaces[0].spaces[2].metrics.halstead.N1
old: 7.0
new: 41.0
path: .spaces[0].spaces[2].metrics.halstead.length
old: 11.0
new: 63.0
path: .spaces[0].spaces[2].metrics.halstead.difficulty
old: 4.0
new: 9.533333333333331
path: .spaces[0].spaces[2].metrics.halstead.effort
old: 139.47670006346175
new: 2887.297366187797
path: .spaces[0].spaces[2].metrics.halstead.estimated_program_length
old: 20.264662506490403
new: 106.70907526996196
path: .spaces[0].spaces[2].metrics.halstead.n1
old: 6.0
new: 13.0
path: .spaces[0].spaces[2].metrics.halstead.N2
old: 4.0
new: 22.0
path: .spaces[0].spaces[2].metrics.loc.lloc
old: 1.0
new: 0.0
path: .spaces[0].spaces[2].metrics.loc.ploc
old: 1.0
new: 12.0
path: .spaces[0].spaces[2].metrics.loc.blank
old: 0.0
new: 4.0
path: .spaces[0].spaces[2].metrics.loc.cloc
old: 0.0
new: 3.0
path: .spaces[0].spaces[2].metrics.loc.sloc
old: 1.0
new: 19.0
path: .spaces[0].spaces[2].metrics.cyclomatic.sum
old: 1.0
new: 2.0
path: .spaces[0].spaces[2].metrics.nargs.average
old: 1.0
new: 0.0
path: .spaces[0].spaces[2].metrics.nargs.sum
old: 1.0
new: 0.0
path: .spaces[0].spaces[2].metrics.nexits.sum
old: 1.0
new: 0.0
path: .spaces[0].spaces[2].metrics.nexits.average
old: 1.0
new: 0.0

### Code

    class MemoryReportingProcess {
     public:
      NS_IMETHOD_(MozExternalRefCountType) AddRef() = 0;
      NS_IMETHOD_(MozExternalRefCountType) Release() = 0;

      virtual ~MemoryReportingProcess() = default;

      // Return true if the process is still alive, false otherwise.
      virtual bool IsAlive() const = 0;

      // Initiate a memory report request, returning true if a report was
      // successfully initiated and false otherwise.
      virtual bool SendRequestMemoryReport(
          const uint32_t& aGeneration, const bool& aAnonymize,
          const bool& aMinimizeMemoryUsage,
          const Maybe& aDMDFile) = 0;

      virtual int32_t Pid() const = 0;
    };

## Minimal test - lines (13, 43)

path: .spaces[0].metrics.nargs.average
old: 0.75
new: 0.0
path: .spaces[0].metrics.nargs.sum
old: 3.0
new: 0.0
path: .spaces[0].metrics.nexits.average
old: 1.0
new: 0.0
path: .spaces[0].metrics.nexits.sum
old: 4.0
new: 0.0
path: .spaces[0].metrics.nom.functions
old: 4.0
new: 1.0
path: .spaces[0].metrics.nom.total
old: 4.0
new: 1.0
path: .spaces[0].metrics.mi.mi_visual_studio
old: 38.1331455653035
new: 48.66505691283287
path: .spaces[0].metrics.mi.mi_original
old: 65.207678916669
new: 83.21724732094421
path: .spaces[0].metrics.mi.mi_sei
old: 56.23793022271873
new: 76.46721561409478
path: .spaces[0].metrics.cyclomatic.sum
old: 7.0
new: 6.0
path: .spaces[0].metrics.halstead.difficulty
old: 10.735294117647058
new: 9.75
path: .spaces[0].metrics.halstead.n1
old: 15.0
new: 13.0
path: .spaces[0].metrics.halstead.n2
old: 51.0
new: 18.0
path: .spaces[0].metrics.halstead.volume
old: 1130.3017003200307
new: 371.5647232790156
path: .spaces[0].metrics.halstead.vocabulary
old: 66.0
new: 31.0
path: .spaces[0].metrics.halstead.N2
old: 73.0
new: 27.0
path: .spaces[0].metrics.halstead.level
old: 0.09315068493150686
new: 0.10256410256410256
path: .spaces[0].metrics.halstead.bugs
old: 0.17601552047119567
new: 0.07862695778359997
path: .spaces[0].metrics.halstead.effort
old: 12134.121194612091
new: 3622.756051970402
path: .spaces[0].metrics.halstead.length
old: 187.0
new: 75.0
path: .spaces[0].metrics.halstead.time
old: 674.1178441451162
new: 201.2642251094668
path: .spaces[0].metrics.halstead.N1
old: 114.0
new: 48.0
path: .spaces[0].metrics.halstead.purity_ratio
old: 1.8604120394367591
new: 1.6421915514906107
path: .spaces[0].metrics.halstead.estimated_program_length
old: 347.897051374674
new: 123.1643663617958
path: .spaces[0].metrics.loc.sloc
old: 65.0
new: 31.0
path: .spaces[0].metrics.loc.ploc
old: 35.0
new: 19.0
path: .spaces[0].metrics.loc.cloc
old: 19.0
new: 6.0
path: .spaces[0].metrics.loc.blank
old: 11.0
new: 6.0
path: .spaces[0].metrics.loc.lloc
old: 5.0
new: 0.0

### Code

    namespace mozilla {
    namespace ipc {
    class FileDescriptor;
    }  // namespace ipc

    template
    class Maybe;

    // Top-level process actors should implement this to integrate with
    // nsMemoryReportManager.
    class MemoryReportingProcess {
     public:
      NS_IMETHOD_(MozExternalRefCountType) AddRef() = 0;
      NS_IMETHOD_(MozExternalRefCountType) Release() = 0;

      virtual ~MemoryReportingProcess() = default;

      // Return true if the process is still alive, false otherwise.
      virtual bool IsAlive() const = 0;

      // Initiate a memory report request, returning true if a report was
      // successfully initiated and false otherwise.
      virtual bool SendRequestMemoryReport(
          const uint32_t& aGeneration, const bool& aAnonymize,
          const bool& aMinimizeMemoryUsage,
          const Maybe& aDMDFile) = 0;

      virtual int32_t Pid() const = 0;
    };

    }  // namespace mozilla

## Minimal test - lines (14, 16)

path: .spaces[0].spaces[0].metrics.cyclomatic.sum
old: 1.0
new: 2.0
path: .spaces[0].spaces[0].metrics.halstead.volume
old: 34.86917501586544
new: 8.0
path: .spaces[0].spaces[0].metrics.halstead.difficulty
old: 3.125
new: 1.0
path: .spaces[0].spaces[0].metrics.halstead.N2
old: 5.0
new: 2.0
path: .spaces[0].spaces[0].metrics.halstead.bugs
old: 0.007604544540941429
new: 0.0013333333333333333
path: .spaces[0].spaces[0].metrics.halstead.time
old: 6.053676218032194
new: 0.4444444444444444
path: .spaces[0].spaces[0].metrics.halstead.length
old: 11.0
new: 4.0
path: .spaces[0].spaces[0].metrics.halstead.level
old: 0.32
new: 1.0
path: .spaces[0].spaces[0].metrics.halstead.n1
old: 5.0
new: 2.0
path: .spaces[0].spaces[0].metrics.halstead.n2
old: 4.0
new: 2.0
path: .spaces[0].spaces[0].metrics.halstead.vocabulary
old: 9.0
new: 4.0
path: .spaces[0].spaces[0].metrics.halstead.N1
old: 6.0
new: 2.0
path: .spaces[0].spaces[0].metrics.halstead.effort
old: 108.9661719245795
new: 8.0
path: .spaces[0].spaces[0].metrics.halstead.estimated_program_length
old: 19.60964047443681
new: 4.0
path: .spaces[0].spaces[0].metrics.halstead.purity_ratio
old: 1.7826945885851644
new: 1.0
path: .spaces[0].spaces[0].metrics.mi.mi_original
old: 129.84369470176304
new: 141.92938490684145
path: .spaces[0].spaces[0].metrics.mi.mi_sei
old: 111.72582230432585
new: 129.26360748831726
path: .spaces[0].spaces[0].metrics.mi.mi_visual_studio
old: 75.93198520570938
new: 82.99964029639851
path: .spaces[0].spaces[0].metrics.loc.ploc
old: 4.0
new: 3.0
path: .spaces[0].spaces[0].metrics.loc.sloc
old: 4.0
new: 3.0

### Code

    namespace ipc {
    class FileDescriptor;
    }  // namespace ipc

## Minimal test - lines (19, 19)

path: .spaces[0].spaces[1].metrics.mi.mi_original
old: 152.30166335190526
new: null
path: .spaces[0].spaces[1].metrics.mi.mi_visual_studio
old: 89.06530020579255
new: null
path: .spaces[0].spaces[1].metrics.mi.mi_sei
old: 144.12582230432585
new: null
path: .spaces[0].spaces[1].metrics.nargs.average
old: 1.0
new: null
path: .spaces[0].spaces[1].metrics.nargs.sum
old: 1.0
new: 0.0
path: .spaces[0].spaces[1].metrics.cognitive.average
old: 0.0
new: null
path: .spaces[0].spaces[1].metrics.halstead.level
old: 0.25
new: null
path: .spaces[0].spaces[1].metrics.halstead.vocabulary
old: 9.0
new: 1.0
path: .spaces[0].spaces[1].metrics.halstead.volume
old: 34.86917501586544
new: 0.0
path: .spaces[0].spaces[1].metrics.halstead.time
old: 7.748705559081208
new: 0.0
path: .spaces[0].spaces[1].metrics.halstead.N1
old: 7.0
new: 0.0
path: .spaces[0].spaces[1].metrics.halstead.bugs
old: 0.008964922118925448
new: 0.0
path: .spaces[0].spaces[1].metrics.halstead.effort
old: 139.47670006346175
new: 0.0
path: .spaces[0].spaces[1].metrics.halstead.estimated_program_length
old: 20.264662506490403
new: null
path: .spaces[0].spaces[1].metrics.halstead.N2
old: 4.0
new: 1.0
path: .spaces[0].spaces[1].metrics.halstead.difficulty
old: 4.0
new: 0.0
path: .spaces[0].spaces[1].metrics.halstead.n1
old: 6.0
new: 0.0
path: .spaces[0].spaces[1].metrics.halstead.purity_ratio
old: 1.842242046044582
new: null
path: .spaces[0].spaces[1].metrics.halstead.n2
old: 3.0
new: 1.0
path: .spaces[0].spaces[1].metrics.halstead.length
old: 11.0
new: 1.0
path: .spaces[0].spaces[1].metrics.nexits.average
old: 1.0
new: null
path: .spaces[0].spaces[1].metrics.nexits.sum
old: 1.0
new: 0.0
path: .spaces[0].spaces[1].metrics.nom.functions
old: 1.0
new: 0.0
path: .spaces[0].spaces[1].metrics.nom.total
old: 1.0
new: 0.0
path: .spaces[0].spaces[1].metrics.loc.lloc
old: 1.0
new: 0.0

### Code

    class Maybe;