# Global Metrics

path: .metrics.mi.mi_original
old: 16.548199479932165
new: 59.59888133344886
path: .metrics.mi.mi_sei
old: -23.193858097580776
new: 38.13181820594997
path: .metrics.mi.mi_visual_studio
old: 9.677309637387232
new: 34.85314697862506
path: .metrics.halstead.bugs
old: 1.9881018970321336
new: 0.17502270773474404
path: .metrics.halstead.n1
old: 29.0
new: 14.0
path: .metrics.halstead.estimated_program_length
old: 1507.3000733748622
new: 385.7776997161967
path: .metrics.halstead.effort
old: 460616.871887321
new: 12031.602623259712
path: .metrics.halstead.purity_ratio
old: 1.1896606735397492
new: 2.1551826799787523
path: .metrics.halstead.volume
old: 9782.632672092004
new: 1100.804734391338
path: .metrics.halstead.time
old: 25589.82621596228
new: 668.4223679588729
path: .metrics.halstead.level
old: 0.02123811190851275
new: 0.09149277688603533
path: .metrics.halstead.difficulty
old: 47.08516483516483
new: 10.929824561403509
path: .metrics.halstead.N2
old: 591.0
new: 89.0
path: .metrics.halstead.length
old: 1267.0
new: 179.0
path: .metrics.halstead.n2
old: 182.0
new: 57.0
path: .metrics.halstead.vocabulary
old: 211.0
new: 71.0
path: .metrics.halstead.N1
old: 676.0
new: 90.0
path: .metrics.nom.functions
old: 17.0
new: 1.0
path: .metrics.nom.total
old: 17.0
new: 1.0
path: .metrics.cognitive.average
old: 2.6470588235294117
new: 1.0
path: .metrics.cognitive.sum
old: 45.0
new: 1.0
path: .metrics.nexits.average
old: 1.0588235294117647
new: 0.0
path: .metrics.nexits.sum
old: 18.0
new: 0.0
path: .metrics.loc.sloc
old: 346.0
new: 94.0
path: .metrics.loc.ploc
old: 263.0
new: 65.0
path: .metrics.loc.lloc
old: 117.0
new: 0.0
path: .metrics.loc.blank
old: 49.0
new: 16.0
path: .metrics.loc.cloc
old: 34.0
new: 13.0
path: .metrics.cyclomatic.sum
old: 52.0
new: 6.0
path: .metrics.cyclomatic.average
old: 2.6
new: 1.5
path: .metrics.nargs.average
old: 1.6470588235294117
new: 0.0
path: .metrics.nargs.sum
old: 28.0
new: 0.0

# Spaces Data

## Minimal test - lines (43, 92)

path: .spaces[0].metrics.cognitive.average
old: null
new: 0.0
path: .spaces[0].metrics.nexits.average
old: null
new: 0.0
path: .spaces[0].metrics.nargs.average
old: null
new: 0.0
path: .spaces[0].metrics.cyclomatic.sum
old: 1.0
new: 3.0
path: .spaces[0].metrics.mi.mi_original
old: 113.50218747718309
new: 71.66359754174415
path: .spaces[0].metrics.mi.mi_visual_studio
old: 66.37554823227082
new: 41.90853657411939
path: .spaces[0].metrics.mi.mi_sei
old: 129.66919403500154
new: 43.23857388721838
path: .spaces[0].metrics.nom.functions
old: 0.0
new: 1.0
path: .spaces[0].metrics.nom.total
old: 0.0
new: 1.0
path: .spaces[0].metrics.loc.ploc
old: 6.0
new: 38.0
path: .spaces[0].metrics.loc.blank
old: 0.0
new: 10.0
path: .spaces[0].metrics.loc.sloc
old: 10.0
new: 50.0
path: .spaces[0].metrics.loc.cloc
old: 4.0
new: 2.0
path: .spaces[0].metrics.halstead.N1
old: 5.0
new: 82.0
path: .spaces[0].metrics.halstead.difficulty
old: 1.125
new: 9.545454545454543
path: .spaces[0].metrics.halstead.level
old: 0.8888888888888888
new: 0.10476190476190476
path: .spaces[0].metrics.halstead.vocabulary
old: 10.0
new: 56.0
path: .spaces[0].metrics.halstead.effort
old: 52.32036749447595
new: 8425.944050549031
path: .spaces[0].metrics.halstead.estimated_program_length
old: 26.0
new: 283.2345412286949
path: .spaces[0].metrics.halstead.bugs
old: 0.004662934007700876
new: 0.13802501170114742
path: .spaces[0].metrics.halstead.n1
old: 2.0
new: 12.0
path: .spaces[0].metrics.halstead.n2
old: 8.0
new: 44.0
path: .spaces[0].metrics.halstead.N2
old: 9.0
new: 70.0
path: .spaces[0].metrics.halstead.length
old: 14.0
new: 152.0
path: .spaces[0].metrics.halstead.purity_ratio
old: 1.8571428571428572
new: 1.8633851396624663
path: .spaces[0].metrics.halstead.time
old: 2.906687083026442
new: 468.1080028082795
path: .spaces[0].metrics.halstead.volume
old: 46.50699332842307
new: 882.7179481527558

### Code

    class nsLocalFile final
    #ifdef MOZ_WIDGET_COCOA
        : public nsILocalFileMac
    #else
        : public nsIFile
    #endif
    {
     public:
      NS_DEFINE_STATIC_CID_ACCESSOR(NS_LOCAL_FILE_CID)

      nsLocalFile();
      explicit nsLocalFile(const nsACString& aFilePath);

      static nsresult nsLocalFileConstructor(nsISupports* aOuter, const nsIID& aIID,
                                             void** aInstancePtr);

      NS_DECL_THREADSAFE_ISUPPORTS
      NS_DECL_NSIFILE
    #ifdef MOZ_WIDGET_COCOA
      NS_DECL_NSILOCALFILEMAC
    #endif

     private:
      nsLocalFile(const nsLocalFile& aOther);
      ~nsLocalFile() = default;

     protected:
      // This stat cache holds the *last stat* - it does not invalidate.
      // Call "FillStatCache" whenever you want to stat our file.
      struct STAT mCachedStat;
      nsCString mPath;

      void LocateNativeLeafName(nsACString::const_iterator&,
                                nsACString::const_iterator&);

      nsresult CopyDirectoryTo(nsIFile* aNewParent);
      nsresult CreateAllAncestors(uint32_t aPermissions);
      nsresult GetNativeTargetPathName(nsIFile* aNewParent,
                                       const nsACString& aNewName,
                                       nsACString& aResult);

      bool FillStatCache();

      nsresult CreateAndKeepOpen(uint32_t aType, int aFlags, uint32_t aPermissions,
                                 PRFileDesc** aResult);

      nsresult SetLastModifiedTimeImpl(PRTime aLastModTime, bool aFollowLinks);
      nsresult GetLastModifiedTimeImpl(PRTime* aLastModTime, bool aFollowLinks);
      nsresult GetCreationTimeImpl(PRTime* aCreationTime, bool aFollowLinks);
    };