code: private void finalizeSourceMap() throws IOException {
  		StringWriter writer = new StringWriter();
  		smGen.appendTo(writer, "" /* file name */); //$NON-NLS-1$
  		sourceMap = writer.toString();
  		// now add the sourcesContent field
  		try {
  			JSONObject obj = new JSONObject(sourceMap);
  			JSONArray sources = (JSONArray)obj.get("sources"); //$NON-NLS-1$
  			JSONArray sourcesContent = new JSONArray();
  			for (int i = 0; i < sources.length(); i++) {
  				String content = sourcesMap.get(sources.get(i));
  				sourcesContent.add(content != null ? content : ""); //$NON-NLS-1$
  			}
  			obj.put("sourcesContent", sourcesContent); //$NON-NLS-1$
  			StringBuffer sb = new StringBuffer(SOURCEMAP_XSSI_PREAMBLE);
  			sourceMap = sb.append(obj.toString()).toString();
  		} catch (JSONException e) {
  			throw new IOException(e);
  		}
  	}
docs: Add the sources content to the source map and prepends the source map JSON
  with characters that prevent XSSI attacks.  We need to do this because
  {@link SourceMapGeneratorV3#mergeMapSection(int, int, String)} does not
  preserve sourcesContent from the map being merged in the output map.
  
  @throws IOException