Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(66)

Side by Side Diff: third_party/closure_compiler/checker.py

Issue 780773002: Fix some closure compilation issues 8n order to update compiler.jar (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: roll back *.jar Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 #!/usr/bin/python 1 #!/usr/bin/python
2 # Copyright 2014 The Chromium Authors. All rights reserved. 2 # Copyright 2014 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """Runs Closure compiler on a JavaScript file to check for errors.""" 6 """Runs Closure compiler on a JavaScript file to check for errors."""
7 7
8 import argparse 8 import argparse
9 import os 9 import os
10 import re 10 import re
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 real_file = self._processor.get_file_from_line(match.group(1)) 131 real_file = self._processor.get_file_from_line(match.group(1))
132 return "%s:%d" % (os.path.abspath(real_file.file), real_file.line_number) 132 return "%s:%d" % (os.path.abspath(real_file.file), real_file.line_number)
133 133
134 def _fix_up_error(self, error): 134 def _fix_up_error(self, error):
135 """Filter out irrelevant errors or fix line numbers. 135 """Filter out irrelevant errors or fix line numbers.
136 136
137 Args: 137 Args:
138 error: A Closure compiler error (2 line string with error and source). 138 error: A Closure compiler error (2 line string with error and source).
139 139
140 Return: 140 Return:
141 The fixed up erorr string (blank if it should be ignored). 141 The fixed up error string (blank if it should be ignored).
142 """ 142 """
143 if " first declared in " in error: 143 if " first declared in " in error:
144 # Ignore "Variable x first declared in /same/file". 144 # Ignore "Variable x first declared in /same/file".
145 return "" 145 return ""
146 146
147 expanded_file = self._expanded_file 147 expanded_file = self._expanded_file
148 fixed = re.sub("%s:(\d+)" % expanded_file, self._fix_line_number, error) 148 fixed = re.sub("%s:(\d+)" % expanded_file, self._fix_line_number, error)
149 return fixed.replace(expanded_file, os.path.abspath(self._file_arg)) 149 return fixed.replace(expanded_file, os.path.abspath(self._file_arg))
150 150
151 def _format_errors(self, errors): 151 def _format_errors(self, errors):
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
214 errors = stderr.strip().split("\n\n") 214 errors = stderr.strip().split("\n\n")
215 215
216 # Filter out false-positive promise chain errors. 216 # Filter out false-positive promise chain errors.
217 # See https://github.com/google/closure-compiler/issues/715 for details. 217 # See https://github.com/google/closure-compiler/issues/715 for details.
218 errors = self._error_filter.filter(errors); 218 errors = self._error_filter.filter(errors);
219 219
220 self._debug("Summary: %s" % errors.pop()) 220 self._debug("Summary: %s" % errors.pop())
221 221
222 output = self._format_errors(map(self._fix_up_error, errors)) 222 output = self._format_errors(map(self._fix_up_error, errors))
223 if errors: 223 if errors:
224 self._error("Error in: %s%s" % (source_file, "\n" + output if output else "")) 224 prefix = "\n" if output else ""
225 self._error("Error in: %s%s%s" % (source_file, prefix, output))
225 elif output: 226 elif output:
226 self._debug("Output: %s" % output) 227 self._debug("Output: %s" % output)
227 228
228 self._clean_up() 229 self._clean_up()
229 230
230 return bool(errors), output 231 return bool(errors), output
231 232
232 233
233 if __name__ == "__main__": 234 if __name__ == "__main__":
234 parser = argparse.ArgumentParser( 235 parser = argparse.ArgumentParser(
(...skipping 16 matching lines...) Expand all
251 exit, _ = checker.check(source, depends=depends, externs=externs) 252 exit, _ = checker.check(source, depends=depends, externs=externs)
252 if exit != 0: 253 if exit != 0:
253 sys.exit(exit) 254 sys.exit(exit)
254 255
255 if opts.out_file: 256 if opts.out_file:
256 out_dir = os.path.dirname(opts.out_file) 257 out_dir = os.path.dirname(opts.out_file)
257 if not os.path.exists(out_dir): 258 if not os.path.exists(out_dir):
258 os.makedirs(out_dir) 259 os.makedirs(out_dir)
259 # TODO(dbeam): write compiled file to |opts.out_file|. 260 # TODO(dbeam): write compiled file to |opts.out_file|.
260 open(opts.out_file, "w").write("") 261 open(opts.out_file, "w").write("")
OLDNEW
« no previous file with comments | « chrome/browser/resources/options/pref_ui.js ('k') | third_party/closure_compiler/externs/chrome_extensions.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698