Chromium Code Reviews| Index: Source/devtools/scripts/compile_frontend.py |
| diff --git a/Source/devtools/scripts/compile_frontend.py b/Source/devtools/scripts/compile_frontend.py |
| index 66e98a00d3b9a26afca7f3ab95ef5f2ac4ea2931..8fa9832b4ef6c2493051a8e5999dd59994048088 100755 |
| --- a/Source/devtools/scripts/compile_frontend.py |
| +++ b/Source/devtools/scripts/compile_frontend.py |
| @@ -92,7 +92,7 @@ type_checked_jsdoc_tags_or = "|".join(type_checked_jsdoc_tags_list) |
| # Basic regex for invalid JsDoc types: an object type name ([A-Z][A-Za-z0-9.]+[A-Za-z0-9]) not preceded by '!', '?', ':' (this, new), or '.' (object property). |
| invalid_type_regex = re.compile(r"@(?:" + type_checked_jsdoc_tags_or + r")\s*\{.*(?<![!?:.A-Za-z0-9])([A-Z][A-Za-z0-9.]+[A-Za-z0-9])[^/]*\}") |
| -invalid_type_designator_regex = re.compile(r"@(?:" + type_checked_jsdoc_tags_or + r")\s*.*([?!])=?\}") |
| +invalid_type_designator_regex = re.compile(r"@(?:" + type_checked_jsdoc_tags_or + r")\s*.*(?<![{: ])([?!])=?\}") |
|
aandrey
2014/06/17 11:38:34
hard to review
|
| importscript_regex = re.compile(r"importScript\(\s*[\"']") |
| error_warning_regex = re.compile(r"(?:WARNING|ERROR)") |
| @@ -189,9 +189,6 @@ jsdocValidatorProc = verify_jsdoc_extra() |
| modules_dir = tempfile.mkdtemp() |
| common_closure_args = " --summary_detail_level 3 --compilation_level SIMPLE_OPTIMIZATIONS --warning_level VERBOSE --language_in ECMASCRIPT5 --accept_const_keyword --module_output_path_prefix %s/" % modules_dir |
| -compiler_args_file = tempfile.NamedTemporaryFile(mode='wt', delete=False) |
| -closure_runner_command = "%s -jar %s --compiler-args-file %s" % (java_exec, closure_runner_jar, compiler_args_file.name) |
| - |
| spawned_compiler_command = "%s -jar %s %s \\\n" % (java_exec, closure_compiler_jar, common_closure_args) |
| modules_by_name = {} |
| @@ -267,6 +264,9 @@ def dump_module(name, recursively, processed_modules): |
| print "Compiling frontend..." |
| +compiler_args_file = tempfile.NamedTemporaryFile(mode='wt', delete=False) |
| +closure_runner_command = "%s -jar %s --compiler-args-file %s" % (java_exec, closure_runner_jar, compiler_args_file.name) |
| + |
| for module in modules: |
| closure_args = common_closure_args |
| closure_args += " --externs " + global_externs_file |
| @@ -278,10 +278,9 @@ compiler_args_file.close() |
| modular_compiler_proc = subprocess.Popen(closure_runner_command, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True) |
| -def unclosure_injected_script(sourceFileName, outFileName): |
| - sourceFile = open(sourceFileName, "r") |
| - source = sourceFile.read() |
| - sourceFile.close() |
| +def unclosure_injected_script(sourceFileName, outFileName, has_object_override=False): |
| + with open(sourceFileName, "r") as sourceFile: |
| + source = sourceFile.read() |
| def replace_function(matchobj): |
| return re.sub(r"@param", "param", matchobj.group(1) or "") + "\n//" + matchobj.group(2) |
| @@ -292,14 +291,17 @@ def unclosure_injected_script(sourceFileName, outFileName): |
| # Comment out its return statement |
| source = re.sub(r"\n(\s*return\s+[^;]+;\s*\n\}\)\s*)$", "\n/*\\1*/", source) |
| - outFileName = open(outFileName, "w") |
| - outFileName.write(source) |
| - outFileName.close() |
| + # Replace the "var Object" override with a "self.Object" one |
| + if has_object_override: |
|
aandrey
2014/06/17 11:38:33
just remove the flag?
apavlov
2014/06/17 11:54:04
Done.
|
| + source = re.sub(r"\nvar Object =", "\nself.Object =", source, count=1) |
| + |
| + with open(outFileName, "w") as outFileName: |
| + outFileName.write(source) |
| injectedScriptSourceTmpFile = path.join(inspector_path, "InjectedScriptSourceTmp.js") |
| injectedScriptCanvasModuleSourceTmpFile = path.join(inspector_path, "InjectedScriptCanvasModuleSourceTmp.js") |
| -unclosure_injected_script(injected_script_source_name, injectedScriptSourceTmpFile) |
| +unclosure_injected_script(injected_script_source_name, injectedScriptSourceTmpFile, True) |
| unclosure_injected_script(canvas_injected_script_source_name, injectedScriptCanvasModuleSourceTmpFile) |
| print "Compiling InjectedScriptSource.js and InjectedScriptCanvasModuleSource.js..." |