code: def is_outdated(self, infile, outfile):
          
          
          # Preliminary check for simply missing file or modified entry-point file.
          if super(BrowserifyCompiler, self).is_outdated(infile, outfile):
              return True
          
          # Otherwise we need to see what dependencies there are now, and if they're modified.
          tool, args, env = self._get_cmd_parts()
          cmd = [tool] + args + ['--list', infile]
          if self.verbose:
              print("is_outdated command:", cmd, env)
          dep_list = self.simple_execute_command(cmd, env=env)
          if self.verbose:
              print("dep_list is:", dep_list)
          for dep_file in dep_list.strip().split('\n'):
              if super(BrowserifyCompiler, self).is_outdated(dep_file, outfile):
                  if self.verbose:
                      print("Found dep_file \"%s\" updated." % dep_file)
                  return True
          
          return False
docs: Check if the input file is outdated.
          
          The difficulty with the default implementation is that any file that is
          `require`d from the entry-point file will not trigger a recompile if it
          is modified. This overloaded version of the method corrects this by generating
          a list of all required files that are also a part of the storage manifest
          and checking if they've been modified since the last compile.
          
          The command used to generate the list of dependencies is the same as the compile
          command but uses the `--list` option instead of `--outfile`.
          
          WARNING: It seems to me that just generating the dependencies may take just
          as long as actually compiling, which would mean we would be better off just
          forcing a compile every time.