| Index: third_party/closure_compiler/compile2.py
 | 
| diff --git a/third_party/closure_compiler/compile2.py b/third_party/closure_compiler/compile2.py
 | 
| index 59de787db165d03ba40e782322d844e06d65eafe..9f89126f2cd546683d6cf27fb8df805d9ee98ece 100755
 | 
| --- a/third_party/closure_compiler/compile2.py
 | 
| +++ b/third_party/closure_compiler/compile2.py
 | 
| @@ -189,7 +189,12 @@ class Checker(object):
 | 
|        tmp_file.write(contents)
 | 
|      return tmp_file.name
 | 
|  
 | 
| -  def check(self, sources, out_file=None, runner_args=None, closure_args=None,
 | 
| +  def check(self,
 | 
| +            sources,
 | 
| +            source_list_file=None,
 | 
| +            out_file=None,
 | 
| +            runner_args=None,
 | 
| +            closure_args=None,
 | 
|              custom_sources=True):
 | 
|      """Closure compile |sources| while checking for errors.
 | 
|  
 | 
| @@ -209,6 +214,18 @@ class Checker(object):
 | 
|      """
 | 
|      is_extern = lambda f: 'extern' in f
 | 
|      externs_and_deps = [self._POLYMER_EXTERNS]
 | 
| +    
 | 
| +    # Convert the sources to absolute paths to make comparisons easy.
 | 
| +    sources = map(os.path.abspath, sources)
 | 
| +    # Process the source list.
 | 
| +    if (source_list_file):
 | 
| +      with open(source_list_file) as f:
 | 
| +        listed_sources = f.read().splitlines()
 | 
| +        # Ignore the first line, GN puts the output file name here
 | 
| +        listed_sources = listed_sources[1:]
 | 
| +        listed_sources = map(os.path.abspath, listed_sources)
 | 
| +        # Concatenate onto sources, removing duplicates
 | 
| +        sources += [x for x in listed_sources if x not in sources]
 | 
|  
 | 
|      if custom_sources:
 | 
|        externs_and_deps += sources
 | 
| @@ -307,6 +324,11 @@ if __name__ == "__main__":
 | 
|        description="Typecheck JavaScript using Closure compiler")
 | 
|    parser.add_argument("sources", nargs=argparse.ONE_OR_MORE,
 | 
|                        help="Path to a source file to typecheck")
 | 
| +  parser.add_argument(
 | 
| +      "--source_list_file",
 | 
| +      help="""A file generated by GN containing a list of
 | 
| +              additional sources. Due to an oddity in how this is
 | 
| +              generated the first line is ignored""")
 | 
|    parser.add_argument("--custom_sources", action="store_true",
 | 
|                        help="Whether this rules has custom sources.")
 | 
|    parser.add_argument("-o", "--out_file",
 | 
| @@ -321,7 +343,9 @@ if __name__ == "__main__":
 | 
|  
 | 
|    checker = Checker(verbose=opts.verbose)
 | 
|  
 | 
| -  found_errors, stderr = checker.check(opts.sources, out_file=opts.out_file,
 | 
| +  found_errors, stderr = checker.check(opts.sources,
 | 
| +                                       source_list_file = opts.source_list_file,
 | 
| +                                       out_file=opts.out_file,
 | 
|                                         closure_args=opts.closure_args,
 | 
|                                         runner_args=opts.runner_args,
 | 
|                                         custom_sources=opts.custom_sources)
 | 
| 
 |