# Global Metrics

path: .metrics.nargs.sum
old: 6.0
new: 7.0
path: .metrics.nargs.average
old: 0.3333333333333333
new: 2.3333333333333335
path: .metrics.nom.functions
old: 18.0
new: 3.0
path: .metrics.nom.total
old: 18.0
new: 3.0
path: .metrics.cyclomatic.sum
old: 39.0
new: 6.0
path: .metrics.cyclomatic.average
old: 1.3928571428571428
new: 1.2
path: .metrics.halstead.vocabulary
old: 118.0
new: 44.0
path: .metrics.halstead.length
old: 563.0
new: 88.0
path: .metrics.halstead.effort
old: 121872.73664099837
new: 4029.412755949076
path: .metrics.halstead.N1
old: 329.0
new: 48.0
path: .metrics.halstead.bugs
old: 0.8193757768759209
new: 0.08440598646747269
path: .metrics.halstead.estimated_program_length
old: 724.238174177415
new: 201.68580195782732
path: .metrics.halstead.n2
old: 93.0
new: 31.0
path: .metrics.halstead.n1
old: 25.0
new: 13.0
path: .metrics.halstead.time
old: 6770.707591166575
new: 223.8562642193931
path: .metrics.halstead.volume
old: 3874.9280367907168
new: 480.42998244008214
path: .metrics.halstead.level
old: 0.031794871794871796
new: 0.11923076923076924
path: .metrics.halstead.N2
old: 234.0
new: 40.0
path: .metrics.halstead.difficulty
old: 31.451612903225808
new: 8.387096774193548
path: .metrics.halstead.purity_ratio
old: 1.2863910731392807
new: 2.2918841131571286
path: .metrics.loc.lloc
old: 16.0
new: 6.0
path: .metrics.loc.sloc
old: 218.0
new: 34.0
path: .metrics.loc.blank
old: 42.0
new: 4.0
path: .metrics.loc.cloc
old: 52.0
new: 7.0
path: .metrics.loc.ploc
old: 124.0
new: 23.0
path: .metrics.mi.mi_sei
old: 8.525110448672365
new: 73.20354054968149
path: .metrics.mi.mi_original
old: 31.837311656402814
new: 80.38461570295681
path: .metrics.mi.mi_visual_studio
old: 18.618310910177087
new: 47.00854719471158
path: .metrics.cognitive.sum
old: 6.0
new: 1.0
path: .metrics.nexits.sum
old: 14.0
new: 2.0
path: .metrics.nexits.average
old: 0.7777777777777778
new: 0.6666666666666666

# Spaces Data

## Minimal test - lines (12, 32)

path: .spaces[0].metrics.cyclomatic.average
old: 1.0
new: 1.25
path: .spaces[0].metrics.cyclomatic.sum
old: 1.0
new: 5.0
path: .spaces[0].metrics.mi.mi_sei
old: null
new: 69.4952286206923
path: .spaces[0].metrics.mi.mi_visual_studio
old: null
new: 51.926867669509846
path: .spaces[0].metrics.mi.mi_original
old: null
new: 88.79494371486183
path: .spaces[0].metrics.loc.lloc
old: 0.0
new: 6.0
path: .spaces[0].metrics.loc.blank
old: 0.0
new: 2.0
path: .spaces[0].metrics.loc.ploc
old: 1.0
new: 18.0
path: .spaces[0].metrics.loc.cloc
old: 0.0
new: 1.0
path: .spaces[0].metrics.loc.sloc
old: 1.0
new: 21.0
path: .spaces[0].metrics.nargs.average
old: null
new: 2.3333333333333335
path: .spaces[0].metrics.nargs.sum
old: 0.0
new: 7.0
path: .spaces[0].metrics.cognitive.sum
old: 0.0
new: 1.0
path: .spaces[0].metrics.cognitive.average
old: null
new: 0.3333333333333333
path: .spaces[0].metrics.halstead.vocabulary
old: 1.0
new: 40.0
path: .spaces[0].metrics.halstead.n2
old: 1.0
new: 27.0
path: .spaces[0].metrics.halstead.effort
old: 0.0
new: 3874.363653078
path: .spaces[0].metrics.halstead.level
old: null
new: 0.1153846153846154
path: .spaces[0].metrics.halstead.bugs
old: 0.0
new: 0.08222660003879012
path: .spaces[0].metrics.halstead.difficulty
old: 0.0
new: 8.666666666666666
path: .spaces[0].metrics.halstead.n1
old: 0.0
new: 13.0
path: .spaces[0].metrics.halstead.N2
old: 1.0
new: 36.0
path: .spaces[0].metrics.halstead.length
old: 1.0
new: 84.0
path: .spaces[0].metrics.halstead.volume
old: 0.0
new: 447.04195997053847
path: .spaces[0].metrics.halstead.N1
old: 0.0
new: 48.0
path: .spaces[0].metrics.halstead.purity_ratio
old: null
new: 2.101043796360093
path: .spaces[0].metrics.halstead.time
old: 0.0
new: 215.242425171
path: .spaces[0].metrics.halstead.estimated_program_length
old: null
new: 176.48767889424784
path: .spaces[0].metrics.nexits.sum
old: 0.0
new: 2.0
path: .spaces[0].metrics.nexits.average
old: null
new: 0.6666666666666666
path: .spaces[0].metrics.nom.functions
old: 0.0
new: 3.0
path: .spaces[0].metrics.nom.total
old: 0.0
new: 3.0

### Code

    namespace mozilla {

    static int ReportException(EXCEPTION_POINTERS* aExceptionInfo) {
      nsCOMPtr cr =
          do_GetService("@mozilla.org/toolkit/crash-reporter;1");
      if (cr) {
        cr->WriteMinidumpForException(aExceptionInfo);
      }

      return EXCEPTION_EXECUTE_HANDLER;
    }

    XPCOM_API(LRESULT)
    CallWindowProcCrashProtected(WNDPROC aWndProc, HWND aHWnd, UINT aMsg,
                                 WPARAM aWParam, LPARAM aLParam) {
      MOZ_SEH_TRY { return aWndProc(aHWnd, aMsg, aWParam, aLParam); }
      MOZ_SEH_EXCEPT(ReportException(GetExceptionInformation())) {
        ::TerminateProcess(::GetCurrentProcess(), 253);
      }
      return 0;  // not reached
    }