code: public synchronized @Nullable SourceMapConsumerV3 getSourceMap(ErrorManager errorManager) {
      if (!cached) {
        // Avoid re-reading or reparsing files.
        cached = true;
        String sourceMapPath = sourceFile.getOriginalPath();
        try {
          String sourceMapContents = sourceFile.getCode();
          SourceMapConsumerV3 consumer = new SourceMapConsumerV3();
          consumer.parse(sourceMapContents);
          parsedSourceMap = consumer;
        } catch (IOException e) {
          JSError error =
              JSError.make(SourceMapInput.SOURCEMAP_RESOLVE_FAILED, sourceMapPath, e.getMessage());
          errorManager.report(error.getDefaultLevel(), error);
        } catch (SourceMapParseException e) {
          JSError error =
              JSError.make(SourceMapInput.SOURCEMAP_PARSE_FAILED, sourceMapPath, e.getMessage());
          errorManager.report(error.getDefaultLevel(), error);
        }
      }
      return parsedSourceMap;
    }
docs: Gets the source map, reading from disk and parsing if necessary. Returns null if the sourcemap
  cannot be resolved or is malformed.