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

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

Issue 687453007: Suppress misplacedTypeAnnotation to compile cr.defineProperty with annotation. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 1 month 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 14 matching lines...) Expand all
25 "--jscomp_error=accessControls", 25 "--jscomp_error=accessControls",
26 "--jscomp_error=ambiguousFunctionDecl", 26 "--jscomp_error=ambiguousFunctionDecl",
27 "--jscomp_error=checkStructDictInheritance", 27 "--jscomp_error=checkStructDictInheritance",
28 "--jscomp_error=checkTypes", 28 "--jscomp_error=checkTypes",
29 "--jscomp_error=checkVars", 29 "--jscomp_error=checkVars",
30 "--jscomp_error=constantProperty", 30 "--jscomp_error=constantProperty",
31 "--jscomp_error=deprecated", 31 "--jscomp_error=deprecated",
32 "--jscomp_error=externsValidation", 32 "--jscomp_error=externsValidation",
33 "--jscomp_error=globalThis", 33 "--jscomp_error=globalThis",
34 "--jscomp_error=invalidCasts", 34 "--jscomp_error=invalidCasts",
35 "--jscomp_error=misplacedTypeAnnotation",
36 "--jscomp_error=missingProperties", 35 "--jscomp_error=missingProperties",
37 "--jscomp_error=missingReturn", 36 "--jscomp_error=missingReturn",
38 "--jscomp_error=nonStandardJsDocs", 37 "--jscomp_error=nonStandardJsDocs",
39 "--jscomp_error=suspiciousCode", 38 "--jscomp_error=suspiciousCode",
40 "--jscomp_error=undefinedNames", 39 "--jscomp_error=undefinedNames",
41 "--jscomp_error=undefinedVars", 40 "--jscomp_error=undefinedVars",
42 "--jscomp_error=unknownDefines", 41 "--jscomp_error=unknownDefines",
43 "--jscomp_error=uselessCode", 42 "--jscomp_error=uselessCode",
44 "--jscomp_error=visibility", 43 "--jscomp_error=visibility",
45 # TODO(dbeam): happens when the same file is <include>d multiple times. 44 # TODO(dbeam): happens when the same file is <include>d multiple times.
46 "--jscomp_off=duplicate", 45 "--jscomp_off=duplicate",
46 # TODO(fukino): happens when cr.defineProperty() has a type annotation.
47 # Avoiding parse-time warnings needs 2 pass compiling. crbug.com/421562.
48 "--jscomp_off=misplacedTypeAnnotation",
47 "--language_in=ECMASCRIPT5_STRICT", 49 "--language_in=ECMASCRIPT5_STRICT",
48 "--summary_detail_level=3", 50 "--summary_detail_level=3",
49 ] 51 ]
50 52
51 _JAR_COMMAND = [ 53 _JAR_COMMAND = [
52 "java", 54 "java",
53 "-jar", 55 "-jar",
54 "-Xms1024m", 56 "-Xms1024m",
55 "-client", 57 "-client",
56 "-XX:+TieredCompilation" 58 "-XX:+TieredCompilation"
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
122 match: A re.MatchObject from matching against a line number regex. 124 match: A re.MatchObject from matching against a line number regex.
123 125
124 Returns: 126 Returns:
125 The fixed up /file and :line number. 127 The fixed up /file and :line number.
126 """ 128 """
127 real_file = self._processor.get_file_from_line(match.group(1)) 129 real_file = self._processor.get_file_from_line(match.group(1))
128 return "%s:%d" % (os.path.abspath(real_file.file), real_file.line_number) 130 return "%s:%d" % (os.path.abspath(real_file.file), real_file.line_number)
129 131
130 def _fix_up_error(self, error): 132 def _fix_up_error(self, error):
131 """Filter out irrelevant errors or fix line numbers. 133 """Filter out irrelevant errors or fix line numbers.
132 134
133 Args: 135 Args:
134 error: A Closure compiler error (2 line string with error and source). 136 error: A Closure compiler error (2 line string with error and source).
135 137
136 Return: 138 Return:
137 The fixed up erorr string (blank if it should be ignored). 139 The fixed up erorr string (blank if it should be ignored).
138 """ 140 """
139 if " first declared in " in error: 141 if " first declared in " in error:
140 # Ignore "Variable x first declared in /same/file". 142 # Ignore "Variable x first declared in /same/file".
141 return "" 143 return ""
142 144
143 expanded_file = self._expanded_file 145 expanded_file = self._expanded_file
144 fixed = re.sub("%s:(\d+)" % expanded_file, self._fix_line_number, error) 146 fixed = re.sub("%s:(\d+)" % expanded_file, self._fix_line_number, error)
145 return fixed.replace(expanded_file, os.path.abspath(self._file_arg)) 147 return fixed.replace(expanded_file, os.path.abspath(self._file_arg))
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
242 exit, _ = checker.check(source, depends=depends, externs=externs) 244 exit, _ = checker.check(source, depends=depends, externs=externs)
243 if exit != 0: 245 if exit != 0:
244 sys.exit(exit) 246 sys.exit(exit)
245 247
246 if opts.out_file: 248 if opts.out_file:
247 out_dir = os.path.dirname(opts.out_file) 249 out_dir = os.path.dirname(opts.out_file)
248 if not os.path.exists(out_dir): 250 if not os.path.exists(out_dir):
249 os.makedirs(out_dir) 251 os.makedirs(out_dir)
250 # TODO(dbeam): write compiled file to |opts.out_file|. 252 # TODO(dbeam): write compiled file to |opts.out_file|.
251 open(opts.out_file, "w").write("") 253 open(opts.out_file, "w").write("")
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698