original_string: public function generateJson()
      {
          $sourceMap = array();
          $mappings  = $this->generateMappings();
  
          // File version (always the first entry in the object) and must be a positive integer.
          $sourceMap['version'] = self::VERSION;
  
          // An optional name of the generated code that this source map is associated with.
          $file = $this->options['sourceMapFilename'];
  
          if ($file) {
              $sourceMap['file'] = $file;
          }
  
          // An optional source root, useful for relocating source files on a server or removing repeated values in the
          // 'sources' entry. This value is prepended to the individual entries in the 'source' field.
          $root = $this->options['sourceRoot'];
  
          if ($root) {
              $sourceMap['sourceRoot'] = $root;
          }
  
          // A list of original sources used by the 'mappings' entry.
          $sourceMap['sources'] = array();
  
          foreach ($this->sources as $source_uri => $source_filename) {
              $sourceMap['sources'][] = $this->normalizeFilename($source_filename);
          }
  
          // A list of symbol names used by the 'mappings' entry.
          $sourceMap['names'] = array();
  
          // A string with the encoded mapping data.
          $sourceMap['mappings'] = $mappings;
  
          if ($this->options['outputSourceFiles']) {
              // An optional list of source content, useful when the 'source' can't be hosted.
              // The contents are listed in the same order as the sources above.
              // 'null' may be used if some original sources should be retrieved by name.
              $sourceMap['sourcesContent'] = $this->getSourcesContent();
          }
  
          // less.js compat fixes
          if (count($sourceMap['sources']) && empty($sourceMap['sourceRoot'])) {
              unset($sourceMap['sourceRoot']);
          }
  
          return json_encode($sourceMap);
      }
code: public function generateJson()
      {
          $sourceMap = array();
          $mappings  = $this->generateMappings();
  
          // File version (always the first entry in the object) and must be a positive integer.
          $sourceMap['version'] = self::VERSION;
  
          // An optional name of the generated code that this source map is associated with.
          $file = $this->options['sourceMapFilename'];
  
          if ($file) {
              $sourceMap['file'] = $file;
          }
  
          // An optional source root, useful for relocating source files on a server or removing repeated values in the
          // 'sources' entry. This value is prepended to the individual entries in the 'source' field.
          $root = $this->options['sourceRoot'];
  
          if ($root) {
              $sourceMap['sourceRoot'] = $root;
          }
  
          // A list of original sources used by the 'mappings' entry.
          $sourceMap['sources'] = array();
  
          foreach ($this->sources as $source_uri => $source_filename) {
              $sourceMap['sources'][] = $this->normalizeFilename($source_filename);
          }
  
          // A list of symbol names used by the 'mappings' entry.
          $sourceMap['names'] = array();
  
          // A string with the encoded mapping data.
          $sourceMap['mappings'] = $mappings;
  
          if ($this->options['outputSourceFiles']) {
              // An optional list of source content, useful when the 'source' can't be hosted.
              // The contents are listed in the same order as the sources above.
              // 'null' may be used if some original sources should be retrieved by name.
              $sourceMap['sourcesContent'] = $this->getSourcesContent();
          }
  
          // less.js compat fixes
          if (count($sourceMap['sources']) && empty($sourceMap['sourceRoot'])) {
              unset($sourceMap['sourceRoot']);
          }
  
          return json_encode($sourceMap);
      }
code_tokens: public function generateJson ( ) { $ sourceMap = array ( ) ; $ mappings = $ this -> generateMappings ( ) ; // File version (always the first entry in the object) and must be a positive integer. $ sourceMap [ 'version' ] = self :: VERSION ; // An optional name of the generated code that this source map is associated with. $ file = $ this -> options [ 'sourceMapFilename' ] ; if ( $ file ) { $ sourceMap [ 'file' ] = $ file ; } // An optional source root, useful for relocating source files on a server or removing repeated values in the // 'sources' entry. This value is prepended to the individual entries in the 'source' field. $ root = $ this -> options [ 'sourceRoot' ] ; if ( $ root ) { $ sourceMap [ 'sourceRoot' ] = $ root ; } // A list of original sources used by the 'mappings' entry. $ sourceMap [ 'sources' ] = array ( ) ; foreach ( $ this -> sources as $ source_uri => $ source_filename ) { $ sourceMap [ 'sources' ] [ ] = $ this -> normalizeFilename ( $ source_filename ) ; } // A list of symbol names used by the 'mappings' entry. $ sourceMap [ 'names' ] = array ( ) ; // A string with the encoded mapping data. $ sourceMap [ 'mappings' ] = $ mappings ; if ( $ this -> options [ 'outputSourceFiles' ] ) { // An optional list of source content, useful when the 'source' can't be hosted. // The contents are listed in the same order as the sources above. // 'null' may be used if some original sources should be retrieved by name. $ sourceMap [ 'sourcesContent' ] = $ this -> getSourcesContent ( ) ; } // less.js compat fixes if ( count ( $ sourceMap [ 'sources' ] ) && empty ( $ sourceMap [ 'sourceRoot' ] ) ) { unset ( $ sourceMap [ 'sourceRoot' ] ) ; } return json_encode ( $ sourceMap ) ; }
docstring: Generates the JSON source map
  
  @return string
  
  @see https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#
docstring_tokens: Generates the JSON source map