code: function getDocs(fileName) {
          if (!promiseCache[fileName]) {
              var result = new $.Deferred();
  
              var path = ExtensionUtils.getModulePath(module, fileName),
                  file = FileSystem.getFileForPath(path);
  
              FileUtils.readAsText(file)
                  .done(function (text) {
                      var jsonData;
                      try {
                          jsonData = JSON.parse(text);
                      } catch (ex) {
                          console.error("Malformed documentation database: ", ex);
                          result.reject();
                      }
                      result.resolve(jsonData);  // ignored if we already reject()ed above
                  })
                  .fail(function (err) {
                      console.error("Unable to load documentation database: ", err);
                      result.reject();
                  });
  
              promiseCache[fileName] = result.promise();
          }
  
          return promiseCache[fileName];
      }
docs: Lazily loads JSON docs files. Returns a Promise the is resolved with the parsed Object, or
  rejected if the file is missing/corrupt.
  @param {string} fileName JSON file to load
  @return {!$.Promise}