getAddonInstance(parent, project) {
    let addonEntryPointModule = this._getAddonEntryPoint();
    let addonInstance;

    if (
      PerBundleAddonCache.isEnabled() &&
      project &&
      project.perBundleAddonCache.allowCachingPerBundle(addonEntryPointModule)
    ) {
      addonInstance = project.perBundleAddonCache.getAddonInstance(parent, this);
    } else {
      addonInstance = this.constructAddonInstance(parent, project);
      this.initChildAddons(addonInstance);
    }

    return addonInstance;
  }
Create an instance of the addon represented by this packageInfo or (if we
are supporting per-bundle caching and this is an allow-caching-per-bundle addon)
check if we should be creating a proxy instead.

NOTE: we assume that the value of 'allowCachingPerBundle' does not change between
calls to the constructor! A given addon is either allowing or not allowing caching
for an entire run.

@method getAddonInstance
@param {} parent the addon/project that is to be the direct parent of the
addon instance created here
@param {*} project the project that is to contain this addon instance
@return {Object} the constructed instance of the addon