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 ; }
Gets the source map reading from disk and parsing if necessary . Returns null if the sourcemap cannot be resolved or is malformed .