Changeset 236321 in webkit
- Timestamp:
- Sep 21, 2018 9:20:05 AM (6 years ago)
- Location:
- trunk
- Files:
-
- 46 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ChangeLog
r236246 r236321 1 2018-09-21 Mike Gorse <mgorse@suse.com> 2 3 Build tools should work when the /usr/bin/python is python3 4 https://bugs.webkit.org/show_bug.cgi?id=156674 5 6 Reviewed by Michael Catanzaro. 7 8 * Source/cmake/WebKitCommon.cmake: Allow python 3. 9 1 10 2018-09-20 Carlos Garcia Campos <cgarcia@igalia.com> 2 11 -
trunk/Source/JavaScriptCore/ChangeLog
r236315 r236321 1 2018-09-21 Mike Gorse <mgorse@suse.com> 2 3 Build tools should work when the /usr/bin/python is python3 4 https://bugs.webkit.org/show_bug.cgi?id=156674 5 6 Reviewed by Michael Catanzaro. 7 8 * Scripts/cssmin.py: 9 * Scripts/generate-js-builtins.py: 10 (do_open): 11 (generate_bindings_for_builtins_files): 12 * Scripts/generateIntlCanonicalizeLanguage.py: 13 * Scripts/jsmin.py: 14 (JavascriptMinify.minify.write): 15 (JavascriptMinify): 16 (JavascriptMinify.minify): 17 * Scripts/make-js-file-arrays.py: 18 (chunk): 19 (main): 20 * Scripts/wkbuiltins/__init__.py: 21 * Scripts/wkbuiltins/builtins_generate_combined_header.py: 22 (generate_section_for_global_private_code_name_macro): 23 * Scripts/wkbuiltins/builtins_generate_internals_wrapper_header.py: 24 (BuiltinsInternalsWrapperHeaderGenerator.__init__): 25 * Scripts/wkbuiltins/builtins_generate_internals_wrapper_implementation.py: 26 (BuiltinsInternalsWrapperImplementationGenerator.__init__): 27 * Scripts/wkbuiltins/builtins_model.py: 28 (BuiltinFunction.__lt__): 29 (BuiltinsCollection.copyrights): 30 (BuiltinsCollection._parse_functions): 31 * disassembler/udis86/ud_opcode.py: 32 (UdOpcodeTables.pprint.printWalk): 33 * generate-bytecode-files: 34 * inspector/scripts/codegen/__init__.py: 35 * inspector/scripts/codegen/cpp_generator.py: 36 * inspector/scripts/codegen/generate_cpp_alternate_backend_dispatcher_header.py: 37 (CppAlternateBackendDispatcherHeaderGenerator.generate_output): 38 * inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py: 39 (CppBackendDispatcherHeaderGenerator.domains_to_generate): 40 (CppBackendDispatcherHeaderGenerator.generate_output): 41 (CppBackendDispatcherHeaderGenerator._generate_dispatcher_declarations_for_domain): 42 * inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py: 43 (CppBackendDispatcherImplementationGenerator.domains_to_generate): 44 (CppBackendDispatcherImplementationGenerator.generate_output): 45 * inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py: 46 (CppFrontendDispatcherHeaderGenerator.domains_to_generate): 47 (CppFrontendDispatcherHeaderGenerator.generate_output): 48 * inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py: 49 (CppFrontendDispatcherImplementationGenerator.domains_to_generate): 50 (CppFrontendDispatcherImplementationGenerator.generate_output): 51 * inspector/scripts/codegen/generate_cpp_protocol_types_header.py: 52 (CppProtocolTypesHeaderGenerator.generate_output): 53 (CppProtocolTypesHeaderGenerator._generate_forward_declarations): 54 * inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py: 55 (CppProtocolTypesImplementationGenerator.generate_output): 56 (CppProtocolTypesImplementationGenerator._generate_enum_conversion_methods_for_domain): 57 (CppProtocolTypesImplementationGenerator._generate_enum_mapping_and_conversion_methods): 58 (CppProtocolTypesImplementationGenerator._generate_open_field_names): 59 (CppProtocolTypesImplementationGenerator._generate_builders_for_domain): 60 (CppProtocolTypesImplementationGenerator._generate_assertion_for_object_declaration): 61 * inspector/scripts/codegen/generate_js_backend_commands.py: 62 (JSBackendCommandsGenerator.should_generate_domain): 63 (JSBackendCommandsGenerator.domains_to_generate): 64 (JSBackendCommandsGenerator.generate_output): 65 (JSBackendCommandsGenerator.generate_domain): 66 * inspector/scripts/codegen/generate_objc_backend_dispatcher_header.py: 67 (ObjCBackendDispatcherHeaderGenerator.domains_to_generate): 68 (ObjCBackendDispatcherHeaderGenerator.generate_output): 69 * inspector/scripts/codegen/generate_objc_backend_dispatcher_implementation.py: 70 (ObjCBackendDispatcherImplementationGenerator.domains_to_generate): 71 (ObjCBackendDispatcherImplementationGenerator.generate_output): 72 (ObjCBackendDispatcherImplementationGenerator._generate_success_block_for_command): 73 * inspector/scripts/codegen/generate_objc_configuration_header.py: 74 * inspector/scripts/codegen/generate_objc_configuration_implementation.py: 75 * inspector/scripts/codegen/generate_objc_frontend_dispatcher_implementation.py: 76 (ObjCFrontendDispatcherImplementationGenerator.domains_to_generate): 77 (ObjCFrontendDispatcherImplementationGenerator.generate_output): 78 (ObjCFrontendDispatcherImplementationGenerator._generate_event): 79 * inspector/scripts/codegen/generate_objc_header.py: 80 (ObjCHeaderGenerator.generate_output): 81 (ObjCHeaderGenerator._generate_type_interface): 82 * inspector/scripts/codegen/generate_objc_internal_header.py: 83 (ObjCInternalHeaderGenerator.generate_output): 84 * inspector/scripts/codegen/generate_objc_protocol_type_conversions_header.py: 85 (ObjCProtocolTypeConversionsHeaderGenerator.domains_to_generate): 86 (ObjCProtocolTypeConversionsHeaderGenerator.generate_output): 87 * inspector/scripts/codegen/generate_objc_protocol_type_conversions_implementation.py: 88 (ObjCProtocolTypeConversionsImplementationGenerator.domains_to_generate): 89 * inspector/scripts/codegen/generate_objc_protocol_types_implementation.py: 90 (ObjCProtocolTypesImplementationGenerator.domains_to_generate): 91 (ObjCProtocolTypesImplementationGenerator.generate_output): 92 (ObjCProtocolTypesImplementationGenerator.generate_type_implementation): 93 (ObjCProtocolTypesImplementationGenerator._generate_init_method_for_required_members): 94 * inspector/scripts/codegen/generator.py: 95 (Generator.non_supplemental_domains): 96 (Generator.open_fields): 97 (Generator.calculate_types_requiring_shape_assertions): 98 (Generator._traverse_and_assign_enum_values): 99 (Generator.stylized_name_for_enum_value): 100 * inspector/scripts/codegen/models.py: 101 (find_duplicates): 102 * inspector/scripts/codegen/objc_generator.py: 103 * wasm/generateWasm.py: 104 (opcodeIterator): 105 * yarr/generateYarrCanonicalizeUnicode: 106 * yarr/generateYarrUnicodePropertyTables.py: 107 * yarr/hasher.py: 108 (stringHash): 109 1 110 2018-09-21 Tomas Popela <tpopela@redhat.com> 2 111 -
trunk/Source/JavaScriptCore/Scripts/generate-js-builtins.py
r236005 r236321 32 32 import optparse 33 33 import os 34 import sys 34 35 35 36 logging.basicConfig(format='%(levelname)s: %(message)s', level=logging.ERROR) … … 47 48 48 49 50 def do_open(file, mode): 51 if sys.version_info.major == 2: 52 return open(file, mode) 53 else: 54 return open(file, mode, encoding="UTF-8") 55 49 56 def generate_bindings_for_builtins_files(builtins_files=[], 50 57 output_path=None, … … 60 67 61 68 for filepath in builtins_files: 62 with open(filepath, "r") as file:69 with do_open(filepath, "r") as file: 63 70 file_text = file.read() 64 71 file_name = os.path.basename(filepath) … … 147 154 input_filepaths.append(os.path.join(arg_options.input_directory, filepath)) 148 155 149 input_filepaths = sorted( filter(lambda name: fnmatch.fnmatch(name, '*.js'), input_filepaths))156 input_filepaths = sorted([name for name in input_filepaths if fnmatch.fnmatch(name, '*.js')]) 150 157 151 158 options = { … … 160 167 log.debug("Generating code for builtins.") 161 168 log.debug("Parsed options:") 162 for option, value in options.items():169 for option, value in list(options.items()): 163 170 log.debug(" %s: %s" % (option, value)) 164 171 log.debug("") -
trunk/Source/JavaScriptCore/Scripts/generateIntlCanonicalizeLanguage.py
r234127 r236321 190 190 191 191 registryFile = openOrExit(registryPath, "r") 192 intlCanonHFile = openOrExit(intlCanonHPath, "w b")192 intlCanonHFile = openOrExit(intlCanonHPath, "w") 193 193 194 194 intlCanonHFile.write(header) -
trunk/Source/JavaScriptCore/Scripts/jsmin.py
r191692 r236321 80 80 # all of this is to support literal regular expressions. 81 81 # sigh 82 if charin 'return':82 if str(char) in 'return': 83 83 self.return_buf += char 84 84 self.is_return = self.return_buf == 'return' 85 self.outs.write(char) 85 if sys.version_info.major == 2: 86 self.outs.write(char) 87 else: 88 self.outs.write(str(char)) 86 89 if self.is_return: 87 90 self.return_buf = '' … … 119 122 elif not previous: 120 123 return 121 elif previous >= '!':122 if previousin "'\"":124 elif str(previous) >= "!": 125 if str(previous) in "'\"": 123 126 in_quote = previous 124 127 write(previous) … … 167 170 in_quote = '' 168 171 write(''.join(quote_buf)) 169 elif next1in '\r\n':172 elif str(next1) in '\r\n': 170 173 if previous_non_space in newlineend_strings \ 171 174 or previous_non_space > '~': … … 180 183 do_newline = True 181 184 break 182 elif next1< '!' and not in_re:185 elif str(next1) < '!' and not in_re: 183 186 if (previous_non_space in space_strings \ 184 187 or previous_non_space > '~') \ … … 218 221 219 222 write(next1) 220 if not in_re and next1in "'\"`":223 if not in_re and str(next1) in "'\"`": 221 224 in_quote = next1 222 225 quote_buf = [] … … 225 228 next1 = next2 226 229 227 if previous>= '!':230 if str(previous) >= '!': 228 231 previous_non_space = previous 229 232 -
trunk/Source/JavaScriptCore/Scripts/make-js-file-arrays.py
r225724 r236321 26 26 import os 27 27 from optparse import OptionParser 28 from StringIO import StringIO 28 import sys 29 if sys.version_info.major == 2: 30 from StringIO import StringIO 31 else: 32 from io import StringIO 29 33 from jsmin import JavascriptMinify 30 34 … … 38 42 39 43 def chunk(list, chunkSize): 40 for i in xrange(0, len(list), chunkSize):44 for i in range(0, len(list), chunkSize): 41 45 yield list[i:i + chunkSize] 42 46 … … 86 90 print('const char {0:s}JavaScript[{1:d}] = {{'.format(variableName, size), file=sourceFile) 87 91 88 codepoints = map(ord, characters)92 codepoints = list(map(ord, characters)) 89 93 for codepointChunk in chunk(codepoints, 16): 90 94 print(' {0:s},'.format(','.join(map(stringifyCodepoint, codepointChunk))), file=sourceFile) -
trunk/Source/JavaScriptCore/Scripts/wkbuiltins/__init__.py
r236005 r236321 1 1 # Required for Python to search this directory for module files 2 2 3 from wkbuiltins import *3 from .wkbuiltins import * -
trunk/Source/JavaScriptCore/Scripts/wkbuiltins/builtins_generate_combined_header.py
r236005 r236321 159 159 lines = [] 160 160 lines.append("#define %(macroPrefix)s_FOREACH_BUILTIN_FUNCTION_PRIVATE_GLOBAL_NAME(macro) \\" % args) 161 functions = filter(lambda function: function.is_global_private, self.model().all_functions())161 functions = [function for function in self.model().all_functions() if function.is_global_private] 162 162 functions.sort(key=lambda x: x.function_name) 163 163 for function in functions: -
trunk/Source/JavaScriptCore/Scripts/wkbuiltins/builtins_generate_internals_wrapper_header.py
r236005 r236321 37 37 def __init__(self, model): 38 38 BuiltinsGenerator.__init__(self, model) 39 self.internals = filter(lambda object: 'internal' in object.annotations, model.objects)39 self.internals = [object for object in model.objects if 'internal' in object.annotations] 40 40 41 41 def output_filename(self): -
trunk/Source/JavaScriptCore/Scripts/wkbuiltins/builtins_generate_internals_wrapper_implementation.py
r236005 r236321 37 37 def __init__(self, model): 38 38 BuiltinsGenerator.__init__(self, model) 39 self.internals = filter(lambda object: 'internal' in object.annotations, model.objects)39 self.internals = [object for object in model.objects if 'internal' in object.annotations] 40 40 41 41 def output_filename(self): -
trunk/Source/JavaScriptCore/Scripts/wkbuiltins/builtins_model.py
r236005 r236321 156 156 return interface 157 157 158 def __lt__(self, other): 159 return self.function_name < other.function_name 160 158 161 159 162 class BuiltinsCollection: … … 211 214 result = [] 212 215 213 for owner, years in owner_to_years.items():216 for owner, years in list(owner_to_years.items()): 214 217 sorted_years = list(years) 215 218 sorted_years.sort() … … 304 307 305 308 functionStrings = [text[start:end].strip() for (start, end) in functionBounds] 306 return map(BuiltinFunction.fromString, functionStrings)309 return list(map(BuiltinFunction.fromString, functionStrings)) -
trunk/Source/JavaScriptCore/disassembler/udis86/ud_opcode.py
r198832 r236321 551 551 for k, e in entries: 552 552 if isinstance(e, UdOpcodeTable): 553 self.log("%s |-<%02x> %s" % (indent, k, e))553 self.log("%s |-<%02x> %s" % (indent, int(k), e)) 554 554 printWalk(e, indent + " |") 555 555 elif isinstance(e, UdInsnDef): 556 self.log("%s |-<%02x> %s" % (indent, k, e))556 self.log("%s |-<%02x> %s" % (indent, int(k), e)) 557 557 printWalk(self.root) 558 558 -
trunk/Source/JavaScriptCore/generate-bytecode-files
r232070 r236321 127 127 writeInstructionAccessor(bytecodeHFile, "Opcode", "opcode") 128 128 for offset in bytecode["offsets"]: 129 for name, typeName in offset.ite ritems():129 for name, typeName in offset.items(): 130 130 writeInstructionAccessor(bytecodeHFile, typeName, name) 131 131 … … 135 135 writeInstructionMember(bytecodeHFile, "Opcode", "opcode") 136 136 for offset in bytecode["offsets"]: 137 for name, typeName in offset.ite ritems():137 for name, typeName in offset.items(): 138 138 writeInstructionMember(bytecodeHFile, typeName, name) 139 139 bytecodeHFile.write("};\n\n") … … 207 207 208 208 if bytecodeHFilename: 209 bytecodeHFile = openOrExit(bytecodeHFilename, "w b")209 bytecodeHFile = openOrExit(bytecodeHFilename, "w") 210 210 211 211 if bytecodeStructsHFilename: 212 bytecodeStructsHFile = openOrExit(bytecodeStructsHFilename, "w b")212 bytecodeStructsHFile = openOrExit(bytecodeStructsHFilename, "w") 213 213 214 214 if initASMFileName: 215 initBytecodesFile = openOrExit(initASMFileName, "w b")215 initBytecodesFile = openOrExit(initASMFileName, "w") 216 216 217 217 try: -
trunk/Source/JavaScriptCore/inspector/scripts/codegen/__init__.py
r197717 r236321 1 1 # Required for Python to search this directory for module files 2 2 3 from models import *4 from generator import *5 from cpp_generator import *6 from objc_generator import *3 from .models import * 4 from .generator import * 5 from .cpp_generator import * 6 from .objc_generator import * 7 7 8 from generate_cpp_alternate_backend_dispatcher_header import *9 from generate_cpp_backend_dispatcher_header import *10 from generate_cpp_backend_dispatcher_implementation import *11 from generate_cpp_frontend_dispatcher_header import *12 from generate_cpp_frontend_dispatcher_implementation import *13 from generate_cpp_protocol_types_header import *14 from generate_cpp_protocol_types_implementation import *15 from generate_js_backend_commands import *16 from generate_objc_backend_dispatcher_header import *17 from generate_objc_backend_dispatcher_implementation import *18 from generate_objc_configuration_header import *19 from generate_objc_configuration_implementation import *20 from generate_objc_frontend_dispatcher_implementation import *21 from generate_objc_header import *22 from generate_objc_internal_header import *23 from generate_objc_protocol_types_implementation import *24 from generate_objc_protocol_type_conversions_header import *25 from generate_objc_protocol_type_conversions_implementation import *8 from .generate_cpp_alternate_backend_dispatcher_header import * 9 from .generate_cpp_backend_dispatcher_header import * 10 from .generate_cpp_backend_dispatcher_implementation import * 11 from .generate_cpp_frontend_dispatcher_header import * 12 from .generate_cpp_frontend_dispatcher_implementation import * 13 from .generate_cpp_protocol_types_header import * 14 from .generate_cpp_protocol_types_implementation import * 15 from .generate_js_backend_commands import * 16 from .generate_objc_backend_dispatcher_header import * 17 from .generate_objc_backend_dispatcher_implementation import * 18 from .generate_objc_configuration_header import * 19 from .generate_objc_configuration_implementation import * 20 from .generate_objc_frontend_dispatcher_implementation import * 21 from .generate_objc_header import * 22 from .generate_objc_internal_header import * 23 from .generate_objc_protocol_types_implementation import * 24 from .generate_objc_protocol_type_conversions_header import * 25 from .generate_objc_protocol_type_conversions_implementation import * -
trunk/Source/JavaScriptCore/inspector/scripts/codegen/cpp_generator.py
r228600 r236321 29 29 import re 30 30 31 from generator import ucfirst, Generator 32 from models import PrimitiveType, ObjectType, ArrayType, EnumType, AliasedType, Frameworks 31 try: 32 from .generator import ucfirst, Generator 33 from .models import PrimitiveType, ObjectType, ArrayType, EnumType, AliasedType, Frameworks 34 except ValueError: 35 from generator import ucfirst, Generator 36 from models import PrimitiveType, ObjectType, ArrayType, EnumType, AliasedType, Frameworks 33 37 34 38 log = logging.getLogger('global') -
trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_alternate_backend_dispatcher_header.py
r228196 r236321 31 31 from string import Template 32 32 33 from cpp_generator import CppGenerator 34 from cpp_generator_templates import CppGeneratorTemplates as CppTemplates 33 try: 34 from .cpp_generator import CppGenerator 35 from .cpp_generator_templates import CppGeneratorTemplates as CppTemplates 36 except ValueError: 37 from cpp_generator import CppGenerator 38 from cpp_generator_templates import CppGeneratorTemplates as CppTemplates 35 39 36 40 log = logging.getLogger('global') … … 53 57 sections.append(self.generate_license()) 54 58 sections.append(Template(CppTemplates.AlternateDispatchersHeaderPrelude).substitute(None, **template_args)) 55 sections.append('\n'.join( filter(None, map(self._generate_handler_declarations_for_domain, domains))))59 sections.append('\n'.join([_f for _f in map(self._generate_handler_declarations_for_domain, domains) if _f])) 56 60 sections.append(Template(CppTemplates.AlternateDispatchersHeaderPostlude).substitute(None, **template_args)) 57 61 return '\n\n'.join(sections) -
trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py
r229493 r236321 31 31 from string import Template 32 32 33 from cpp_generator import CppGenerator 34 from cpp_generator_templates import CppGeneratorTemplates as CppTemplates 35 from generator import Generator, ucfirst 36 from models import EnumType 33 try: 34 from .cpp_generator import CppGenerator 35 from .cpp_generator_templates import CppGeneratorTemplates as CppTemplates 36 from .generator import Generator, ucfirst 37 from .models import EnumType 38 except ValueError: 39 from cpp_generator import CppGenerator 40 from cpp_generator_templates import CppGeneratorTemplates as CppTemplates 41 from generator import Generator, ucfirst 42 from models import EnumType 37 43 38 44 log = logging.getLogger('global') … … 47 53 48 54 def domains_to_generate(self): 49 return filter(lambda domain: len(self.commands_for_domain(domain)) > 0, Generator.domains_to_generate(self))55 return [domain for domain in Generator.domains_to_generate(self) if len(self.commands_for_domain(domain)) > 0] 50 56 51 57 def generate_output(self): … … 63 69 if self.model().framework.setting('alternate_dispatchers', False): 64 70 sections.append(self._generate_alternate_handler_forward_declarations_for_domains(domains)) 65 sections.extend( map(self._generate_handler_declarations_for_domain, domains))66 sections.extend( map(self._generate_dispatcher_declarations_for_domain, domains))71 sections.extend(list(map(self._generate_handler_declarations_for_domain, domains))) 72 sections.extend(list(map(self._generate_dispatcher_declarations_for_domain, domains))) 67 73 sections.append(Template(CppTemplates.HeaderPostlude).substitute(None, **header_args)) 68 74 return "\n\n".join(sections) … … 199 205 if len(commands) > 0: 200 206 declarations.append('private:') 201 declarations.extend( map(self._generate_dispatcher_declaration_for_command, commands))207 declarations.extend(list(map(self._generate_dispatcher_declaration_for_command, commands))) 202 208 203 209 declaration_args = { -
trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py
r233122 r236321 30 30 from string import Template 31 31 32 from cpp_generator import CppGenerator 33 from cpp_generator_templates import CppGeneratorTemplates as CppTemplates 34 from generator import Generator, ucfirst 35 from models import ObjectType, ArrayType 32 try: 33 from .cpp_generator import CppGenerator 34 from .cpp_generator_templates import CppGeneratorTemplates as CppTemplates 35 from .generator import Generator, ucfirst 36 from .models import ObjectType, ArrayType 37 except ValueError: 38 from cpp_generator import CppGenerator 39 from cpp_generator_templates import CppGeneratorTemplates as CppTemplates 40 from generator import Generator, ucfirst 41 from models import ObjectType, ArrayType 36 42 37 43 log = logging.getLogger('global') … … 46 52 47 53 def domains_to_generate(self): 48 return filter(lambda domain: len(self.commands_for_domain(domain)) > 0, Generator.domains_to_generate(self))54 return [domain for domain in Generator.domains_to_generate(self) if len(self.commands_for_domain(domain)) > 0] 49 55 50 56 def generate_output(self): … … 66 72 sections.append(Template(CppTemplates.ImplementationPrelude).substitute(None, **header_args)) 67 73 sections.append("\n".join(map(self._generate_handler_class_destructor_for_domain, self.domains_to_generate()))) 68 sections.extend( map(self._generate_dispatcher_implementations_for_domain, self.domains_to_generate()))74 sections.extend(list(map(self._generate_dispatcher_implementations_for_domain, self.domains_to_generate()))) 69 75 sections.append(Template(CppTemplates.ImplementationPostlude).substitute(None, **header_args)) 70 76 return "\n\n".join(sections) -
trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py
r228196 r236321 31 31 from string import Template 32 32 33 from cpp_generator import CppGenerator 34 from cpp_generator_templates import CppGeneratorTemplates as CppTemplates 35 from generator import Generator, ucfirst 36 from models import EnumType 33 try: 34 from .cpp_generator import CppGenerator 35 from .cpp_generator_templates import CppGeneratorTemplates as CppTemplates 36 from .generator import Generator, ucfirst 37 from .models import EnumType 38 except ValueError: 39 from cpp_generator import CppGenerator 40 from cpp_generator_templates import CppGeneratorTemplates as CppTemplates 41 from generator import Generator, ucfirst 42 from models import EnumType 37 43 38 44 log = logging.getLogger('global') … … 47 53 48 54 def domains_to_generate(self): 49 return filter(lambda domain: len(self.events_for_domain(domain)) > 0, Generator.domains_to_generate(self))55 return [domain for domain in Generator.domains_to_generate(self) if len(self.events_for_domain(domain)) > 0] 50 56 51 57 def generate_output(self): … … 58 64 sections.append(self.generate_license()) 59 65 sections.append(Template(CppTemplates.HeaderPrelude).substitute(None, **header_args)) 60 sections.extend( map(self._generate_dispatcher_declarations_for_domain, self.domains_to_generate()))66 sections.extend(list(map(self._generate_dispatcher_declarations_for_domain, self.domains_to_generate()))) 61 67 sections.append(Template(CppTemplates.HeaderPostlude).substitute(None, **header_args)) 62 68 return "\n\n".join(sections) -
trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py
r233122 r236321 30 30 from string import Template 31 31 32 from cpp_generator import CppGenerator 33 from cpp_generator_templates import CppGeneratorTemplates as CppTemplates 34 from generator import Generator, ucfirst 35 from models import ObjectType, ArrayType 32 try: 33 from .cpp_generator import CppGenerator 34 from .cpp_generator_templates import CppGeneratorTemplates as CppTemplates 35 from .generator import Generator, ucfirst 36 from .models import ObjectType, ArrayType 37 except: 38 from cpp_generator import CppGenerator 39 from cpp_generator_templates import CppGeneratorTemplates as CppTemplates 40 from generator import Generator, ucfirst 41 from models import ObjectType, ArrayType 36 42 37 43 log = logging.getLogger('global') … … 46 52 47 53 def domains_to_generate(self): 48 return filter(lambda domain: len(self.events_for_domain(domain)) > 0, Generator.domains_to_generate(self))54 return [domain for domain in Generator.domains_to_generate(self) if len(self.events_for_domain(domain)) > 0] 49 55 50 56 def generate_output(self): … … 57 63 sections.append(self.generate_license()) 58 64 sections.append(Template(CppTemplates.ImplementationPrelude).substitute(None, **header_args)) 59 sections.extend( map(self._generate_dispatcher_implementations_for_domain, self.domains_to_generate()))65 sections.extend(list(map(self._generate_dispatcher_implementations_for_domain, self.domains_to_generate()))) 60 66 sections.append(Template(CppTemplates.ImplementationPostlude).substitute(None, **header_args)) 61 67 return "\n\n".join(sections) -
trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_header.py
r235248 r236321 32 32 from string import Template 33 33 34 from cpp_generator import CppGenerator 35 from cpp_generator_templates import CppGeneratorTemplates as CppTemplates 36 from generator import Generator, ucfirst 37 from models import EnumType, ObjectType, PrimitiveType, AliasedType, ArrayType, Frameworks 34 try: 35 from .cpp_generator import CppGenerator 36 from .cpp_generator_templates import CppGeneratorTemplates as CppTemplates 37 from .generator import Generator, ucfirst 38 from .models import EnumType, ObjectType, PrimitiveType, AliasedType, ArrayType, Frameworks 39 except ValueError: 40 from cpp_generator import CppGenerator 41 from cpp_generator_templates import CppGeneratorTemplates as CppTemplates 42 from generator import Generator, ucfirst 43 from models import EnumType, ObjectType, PrimitiveType, AliasedType, ArrayType, Frameworks 38 44 39 45 log = logging.getLogger('global') … … 63 69 sections.append(self._generate_typedefs(domains)) 64 70 sections.extend(self._generate_enum_constant_value_conversion_methods()) 65 builder_sections = map(self._generate_builders_for_domain, domains)66 sections.extend( filter(lambda section: len(section) > 0, builder_sections))71 builder_sections = list(map(self._generate_builders_for_domain, domains)) 72 sections.extend([section for section in builder_sections if len(section) > 0]) 67 73 sections.append(self._generate_forward_declarations_for_binding_traits(domains)) 68 74 sections.extend(self._generate_declarations_for_enum_conversion_methods(domains)) … … 89 95 for domain in domains: 90 96 declaration_types = [decl.type for decl in self.type_declarations_for_domain(domain)] 91 object_types = filter(lambda _type: isinstance(_type, ObjectType), declaration_types)92 enum_types = filter(lambda _type: isinstance(_type, EnumType), declaration_types)97 object_types = [_type for _type in declaration_types if isinstance(_type, ObjectType)] 98 enum_types = [_type for _type in declaration_types if isinstance(_type, EnumType)] 93 99 sorted(object_types, key=methodcaller('raw_name')) 94 100 sorted(enum_types, key=methodcaller('raw_name')) … … 115 121 116 122 def _generate_typedefs(self, domains): 117 sections = map(self._generate_typedefs_for_domain, domains)118 sections = filter(lambda text: len(text) > 0, sections)123 sections = list(map(self._generate_typedefs_for_domain, domains)) 124 sections = [text for text in sections if len(text) > 0] 119 125 120 126 if len(sections) == 0: … … 127 133 def _generate_typedefs_for_domain(self, domain): 128 134 type_declarations = self.type_declarations_for_domain(domain) 129 primitive_declarations = filter(lambda decl: isinstance(decl.type, AliasedType), type_declarations)130 array_declarations = filter(lambda decl: isinstance(decl.type, ArrayType), type_declarations)135 primitive_declarations = [decl for decl in type_declarations if isinstance(decl.type, AliasedType)] 136 array_declarations = [decl for decl in type_declarations if isinstance(decl.type, ArrayType)] 131 137 if len(primitive_declarations) == 0 and len(array_declarations) == 0: 132 138 return '' … … 188 194 sections.append(self._generate_class_for_object_declaration(type_declaration, domain)) 189 195 190 sections = filter(lambda section: len(section) > 0, sections)196 sections = [section for section in sections if len(section) > 0] 191 197 if len(sections) == 0: 192 198 return '' … … 202 208 return '' 203 209 204 enum_members = filter(lambda member: isinstance(member.type, EnumType) and member.type.is_anonymous, type_declaration.type_members)205 required_members = filter(lambda member: not member.is_optional, type_declaration.type_members)206 optional_members = filter(lambda member: member.is_optional, type_declaration.type_members)210 enum_members = [member for member in type_declaration.type_members if isinstance(member.type, EnumType) and member.type.is_anonymous] 211 required_members = [member for member in type_declaration.type_members if not member.is_optional] 212 optional_members = [member for member in type_declaration.type_members if member.is_optional] 207 213 object_name = type_declaration.type_name 208 214 … … 263 269 return ' ' + line 264 270 265 indented_lines = map(apply_indentation, self._generate_struct_for_enum_type(enum_member.member_name, enum_member.type))271 indented_lines = list(map(apply_indentation, self._generate_struct_for_enum_type(enum_member.member_name, enum_member.type))) 266 272 return '\n'.join(indented_lines) 267 273 … … 277 283 def _generate_builder_state_enum(self, type_declaration): 278 284 lines = [] 279 required_members = filter(lambda member: not member.is_optional, type_declaration.type_members)285 required_members = [member for member in type_declaration.type_members if not member.is_optional] 280 286 enum_values = [] 281 287 … … 345 351 for domain in domains: 346 352 type_declarations = self.type_declarations_for_domain(domain) 347 declarations_to_generate = filter(lambda decl: self.type_needs_shape_assertions(decl.type), type_declarations)353 declarations_to_generate = [decl for decl in type_declarations if self.type_needs_shape_assertions(decl.type)] 348 354 349 355 for type_declaration in declarations_to_generate: … … 394 400 type_declarations = self.type_declarations_for_domain(domain) 395 401 declaration_types = [decl.type for decl in type_declarations] 396 object_types = filter(lambda _type: isinstance(_type, ObjectType), declaration_types)397 enum_types = filter(lambda _type: isinstance(_type, EnumType), declaration_types)402 object_types = [_type for _type in declaration_types if isinstance(_type, ObjectType)] 403 enum_types = [_type for _type in declaration_types if isinstance(_type, EnumType)] 398 404 if len(object_types) + len(enum_types) == 0: 399 405 continue … … 433 439 type_declarations = self.type_declarations_for_domain(domain) 434 440 declaration_types = [decl.type for decl in type_declarations] 435 enum_types = filter(lambda _type: isinstance(_type, EnumType), declaration_types)441 enum_types = list(filter(lambda _type: isinstance(_type, EnumType), declaration_types)) 436 442 437 443 if len(enum_types) == 0: -
trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py
r233122 r236321 31 31 from operator import methodcaller 32 32 33 from cpp_generator import CppGenerator 34 from cpp_generator_templates import CppGeneratorTemplates as CppTemplates 35 from generator import Generator, ucfirst 36 from models import AliasedType, ArrayType, EnumType, ObjectType 33 try: 34 from .cpp_generator import CppGenerator 35 from .cpp_generator_templates import CppGeneratorTemplates as CppTemplates 36 from .generator import Generator, ucfirst 37 from .models import AliasedType, ArrayType, EnumType, ObjectType 38 except ValueError: 39 from cpp_generator import CppGenerator 40 from cpp_generator_templates import CppGeneratorTemplates as CppTemplates 41 from generator import Generator, ucfirst 42 from models import AliasedType, ArrayType, EnumType, ObjectType 37 43 38 44 log = logging.getLogger('global') … … 66 72 sections.extend(self._generate_enum_mapping_and_conversion_methods(domains)) 67 73 sections.append(self._generate_open_field_names()) 68 builder_sections = map(self._generate_builders_for_domain, domains)69 sections.extend( filter(lambda section: len(section) > 0, builder_sections))74 builder_sections = list(map(self._generate_builders_for_domain, domains)) 75 sections.extend([section for section in builder_sections if len(section) > 0]) 70 76 sections.append('} // namespace Protocol') 71 77 sections.append(Template(CppTemplates.ImplementationPostlude).substitute(None, **header_args)) … … 129 135 type_declarations = self.type_declarations_for_domain(domain) 130 136 declaration_types = [decl.type for decl in type_declarations] 131 object_types = filter(lambda _type: isinstance(_type, ObjectType), declaration_types)132 enum_types = filter(lambda _type: isinstance(_type, EnumType), declaration_types)137 object_types = [_type for _type in declaration_types if isinstance(_type, ObjectType)] 138 enum_types = [_type for _type in declaration_types if isinstance(_type, EnumType)] 133 139 if len(object_types) + len(enum_types) == 0: 134 140 return '' … … 157 163 sections.append('namespace %s {' % self.helpers_namespace()) 158 164 sections.extend(self._generate_enum_mapping()) 159 enum_parser_sections = map(self._generate_enum_conversion_methods_for_domain, domains)160 sections.extend( filter(lambda section: len(section) > 0, enum_parser_sections))165 enum_parser_sections = list(map(self._generate_enum_conversion_methods_for_domain, domains)) 166 sections.extend([section for section in enum_parser_sections if len(section) > 0]) 161 167 if len(sections) == 1: 162 168 return [] # No declarations to emit, just the namespace. … … 169 175 for domain in self.domains_to_generate(): 170 176 type_declarations = self.type_declarations_for_domain(domain) 171 for type_declaration in filter(lambda decl: Generator.type_has_open_fields(decl.type), type_declarations):177 for type_declaration in [decl for decl in type_declarations if Generator.type_has_open_fields(decl.type)]: 172 178 open_members = Generator.open_fields(type_declaration) 173 179 for type_member in sorted(open_members, key=lambda member: member.member_name): … … 180 186 sections = [] 181 187 type_declarations = self.type_declarations_for_domain(domain) 182 declarations_to_generate = filter(lambda decl: self.type_needs_shape_assertions(decl.type), type_declarations)188 declarations_to_generate = [decl for decl in type_declarations if self.type_needs_shape_assertions(decl.type)] 183 189 184 190 for type_declaration in declarations_to_generate: … … 201 207 202 208 def _generate_assertion_for_object_declaration(self, object_declaration): 203 required_members = filter(lambda member: not member.is_optional, object_declaration.type_members)204 optional_members = filter(lambda member: member.is_optional, object_declaration.type_members)209 required_members = [member for member in object_declaration.type_members if not member.is_optional] 210 optional_members = [member for member in object_declaration.type_members if member.is_optional] 205 211 should_count_properties = not Generator.type_has_open_fields(object_declaration.type) 206 212 lines = [] -
trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_js_backend_commands.py
r224634 r236321 31 31 from string import Template 32 32 33 from generator import Generator, ucfirst 34 from generator_templates import GeneratorTemplates as Templates 35 from models import EnumType 33 try: 34 from .generator import Generator, ucfirst 35 from .generator_templates import GeneratorTemplates as Templates 36 from .models import EnumType 37 except ValueError: 38 from generator import Generator, ucfirst 39 from generator_templates import GeneratorTemplates as Templates 40 from models import EnumType 36 41 37 42 log = logging.getLogger('global') … … 47 52 def should_generate_domain(self, domain): 48 53 type_declarations = self.type_declarations_for_domain(domain) 49 domain_enum_types = filter(lambda declaration: isinstance(declaration.type, EnumType), type_declarations)54 domain_enum_types = [declaration for declaration in type_declarations if isinstance(declaration.type, EnumType)] 50 55 return len(self.commands_for_domain(domain)) > 0 or len(self.events_for_domain(domain)) > 0 or len(domain_enum_types) > 0 51 56 52 57 def domains_to_generate(self): 53 return filter(self.should_generate_domain, Generator.domains_to_generate(self))58 return list(filter(self.should_generate_domain, Generator.domains_to_generate(self))) 54 59 55 60 def generate_output(self): 56 61 sections = [] 57 62 sections.append(self.generate_license()) 58 sections.extend( map(self.generate_domain, self.domains_to_generate()))63 sections.extend(list(map(self.generate_domain, self.domains_to_generate()))) 59 64 return "\n\n".join(sections) 60 65 … … 71 76 events = self.events_for_domain(domain) 72 77 73 has_async_commands = any( map(lambda command: command.is_async, commands))78 has_async_commands = any([command.is_async for command in commands]) 74 79 if len(events) > 0 or has_async_commands: 75 80 lines.append('InspectorBackend.register%(domain)sDispatcher = InspectorBackend.registerDomainDispatcher.bind(InspectorBackend, "%(domain)s");' % args) -
trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_backend_dispatcher_header.py
r228196 r236321 31 31 from string import Template 32 32 33 from cpp_generator import CppGenerator 34 from generator import Generator 35 from models import Frameworks 36 from objc_generator import ObjCGenerator 37 from objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates 33 try: 34 from .cpp_generator import CppGenerator 35 from .generator import Generator 36 from .models import Frameworks 37 from .objc_generator import ObjCGenerator 38 from .objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates 39 except ValueError: 40 from cpp_generator import CppGenerator 41 from generator import Generator 42 from models import Frameworks 43 from objc_generator import ObjCGenerator 44 from objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates 38 45 39 46 log = logging.getLogger('global') … … 48 55 49 56 def domains_to_generate(self): 50 return filter(self.should_generate_commands_for_domain, Generator.domains_to_generate(self))57 return list(filter(self.should_generate_commands_for_domain, Generator.domains_to_generate(self))) 51 58 52 59 def generate_output(self): … … 65 72 sections.append(self.generate_license()) 66 73 sections.append(Template(ObjCTemplates.BackendDispatcherHeaderPrelude).substitute(None, **header_args)) 67 sections.extend( map(self._generate_objc_handler_declarations_for_domain, domains))74 sections.extend(list(map(self._generate_objc_handler_declarations_for_domain, domains))) 68 75 sections.append(Template(ObjCTemplates.BackendDispatcherHeaderPostlude).substitute(None, **header_args)) 69 76 return '\n\n'.join(sections) -
trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_backend_dispatcher_implementation.py
r233122 r236321 31 31 from string import Template 32 32 33 from cpp_generator import CppGenerator 34 from generator import Generator 35 from models import PrimitiveType, EnumType, AliasedType, Frameworks 36 from objc_generator import ObjCTypeCategory, ObjCGenerator, join_type_and_name 37 from objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates 33 try: 34 from .cpp_generator import CppGenerator 35 from .generator import Generator 36 from .models import PrimitiveType, EnumType, AliasedType, Frameworks 37 from .objc_generator import ObjCTypeCategory, ObjCGenerator, join_type_and_name 38 from .objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates 39 except ValueError: 40 from cpp_generator import CppGenerator 41 from generator import Generator 42 from models import PrimitiveType, EnumType, AliasedType, Frameworks 43 from objc_generator import ObjCTypeCategory, ObjCGenerator, join_type_and_name 44 from objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates 38 45 39 46 log = logging.getLogger('global') … … 48 55 49 56 def domains_to_generate(self): 50 return filter(self.should_generate_commands_for_domain, Generator.domains_to_generate(self))57 return list(filter(self.should_generate_commands_for_domain, Generator.domains_to_generate(self))) 51 58 52 59 def generate_output(self): … … 66 73 sections.append(self.generate_license()) 67 74 sections.append(Template(ObjCTemplates.BackendDispatcherImplementationPrelude).substitute(None, **header_args)) 68 sections.extend( map(self._generate_handler_implementation_for_domain, domains))75 sections.extend(list(map(self._generate_handler_implementation_for_domain, domains))) 69 76 sections.append(Template(ObjCTemplates.BackendDispatcherImplementationPostlude).substitute(None, **header_args)) 70 77 return '\n\n'.join(sections) … … 115 122 lines.append(' Ref<JSON::Object> resultObject = JSON::Object::create();') 116 123 117 required_pointer_parameters = filter(lambda parameter: not parameter.is_optional and ObjCGenerator.is_type_objc_pointer_type(parameter.type), command.return_parameters)124 required_pointer_parameters = [parameter for parameter in command.return_parameters if not parameter.is_optional and ObjCGenerator.is_type_objc_pointer_type(parameter.type)] 118 125 for parameter in required_pointer_parameters: 119 126 var_name = ObjCGenerator.identifier_to_objc_identifier(parameter.parameter_name) … … 123 130 lines.append(' THROW_EXCEPTION_FOR_BAD_TYPE_IN_ARRAY(%s, [%s class]);' % (var_name, objc_array_class)) 124 131 125 optional_pointer_parameters = filter(lambda parameter: parameter.is_optional and ObjCGenerator.is_type_objc_pointer_type(parameter.type), command.return_parameters)132 optional_pointer_parameters = [parameter for parameter in command.return_parameters if parameter.is_optional and ObjCGenerator.is_type_objc_pointer_type(parameter.type)] 126 133 for parameter in optional_pointer_parameters: 127 134 var_name = ObjCGenerator.identifier_to_objc_identifier(parameter.parameter_name) -
trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_configuration_header.py
r210309 r236321 30 30 from string import Template 31 31 32 from generator import Generator 33 from objc_generator import ObjCGenerator 34 from objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates 32 try: 33 from .generator import Generator 34 from .objc_generator import ObjCGenerator 35 from .objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates 36 except ValueError: 37 from generator import Generator 38 from objc_generator import ObjCGenerator 39 from objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates 35 40 36 41 log = logging.getLogger('global') -
trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_configuration_implementation.py
r210309 r236321 30 30 from string import Template 31 31 32 from generator import Generator 33 from objc_generator import ObjCGenerator 34 from objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates 32 try: 33 from .generator import Generator 34 from .objc_generator import ObjCGenerator 35 from .objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates 36 except ValueError: 37 from generator import Generator 38 from objc_generator import ObjCGenerator 39 from objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates 35 40 36 41 log = logging.getLogger('global') -
trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_frontend_dispatcher_implementation.py
r233122 r236321 30 30 from string import Template 31 31 32 from cpp_generator import CppGenerator 33 from generator import Generator, ucfirst 34 from objc_generator import ObjCGenerator 35 from objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates 32 try: 33 from .cpp_generator import CppGenerator 34 from .generator import Generator, ucfirst 35 from .objc_generator import ObjCGenerator 36 from .objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates 37 except ValueError: 38 from cpp_generator import CppGenerator 39 from generator import Generator, ucfirst 40 from objc_generator import ObjCGenerator 41 from objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates 36 42 37 43 log = logging.getLogger('global') … … 46 52 47 53 def domains_to_generate(self): 48 return filter(self.should_generate_events_for_domain, Generator.domains_to_generate(self))54 return list(filter(self.should_generate_events_for_domain, Generator.domains_to_generate(self))) 49 55 50 56 def generate_output(self): … … 63 69 sections.append(self.generate_license()) 64 70 sections.append(Template(ObjCTemplates.ImplementationPrelude).substitute(None, **header_args)) 65 sections.extend( map(self._generate_event_dispatcher_implementations, domains))71 sections.extend(list(map(self._generate_event_dispatcher_implementations, domains))) 66 72 sections.append(Template(ObjCTemplates.ImplementationPostlude).substitute(None, **header_args)) 67 73 return '\n\n'.join(sections) … … 101 107 lines.append('') 102 108 103 required_pointer_parameters = filter(lambda parameter: not parameter.is_optional and ObjCGenerator.is_type_objc_pointer_type(parameter.type), event.event_parameters)109 required_pointer_parameters = [parameter for parameter in event.event_parameters if not parameter.is_optional and ObjCGenerator.is_type_objc_pointer_type(parameter.type)] 104 110 for parameter in required_pointer_parameters: 105 111 var_name = ObjCGenerator.identifier_to_objc_identifier(parameter.parameter_name) … … 109 115 lines.append(' THROW_EXCEPTION_FOR_BAD_TYPE_IN_ARRAY(%s, [%s class]);' % (var_name, objc_array_class)) 110 116 111 optional_pointer_parameters = filter(lambda parameter: parameter.is_optional and ObjCGenerator.is_type_objc_pointer_type(parameter.type), event.event_parameters)117 optional_pointer_parameters = [parameter for parameter in event.event_parameters if parameter.is_optional and ObjCGenerator.is_type_objc_pointer_type(parameter.type)] 112 118 for parameter in optional_pointer_parameters: 113 119 var_name = ObjCGenerator.identifier_to_objc_identifier(parameter.parameter_name) -
trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_header.py
r225243 r236321 30 30 from string import Template 31 31 32 from generator import Generator, ucfirst 33 from models import ObjectType, EnumType, Platforms 34 from objc_generator import ObjCGenerator, join_type_and_name 35 from objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates 32 try: 33 from .generator import Generator, ucfirst 34 from .models import ObjectType, EnumType, Platforms 35 from .objc_generator import ObjCGenerator, join_type_and_name 36 from .objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates 37 except ValueError: 38 from generator import Generator, ucfirst 39 from models import ObjectType, EnumType, Platforms 40 from objc_generator import ObjCGenerator, join_type_and_name 41 from objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates 36 42 37 43 log = logging.getLogger('global') … … 61 67 62 68 domains = self.domains_to_generate() 63 type_domains = filter(self.should_generate_types_for_domain, domains)64 command_domains = filter(self.should_generate_commands_for_domain, domains)65 event_domains = filter(self.should_generate_events_for_domain, domains)69 type_domains = list(filter(self.should_generate_types_for_domain, domains)) 70 command_domains = list(filter(self.should_generate_commands_for_domain, domains)) 71 event_domains = list(filter(self.should_generate_events_for_domain, domains)) 66 72 67 73 # FIXME: <https://webkit.org/b/138222> Web Inspector: Reduce unnecessary enums/types generated in ObjC Protocol Interfaces … … 73 79 sections.append(self.generate_license()) 74 80 sections.append(Template(ObjCTemplates.HeaderPrelude).substitute(None, **header_args)) 75 sections.append('\n'.join( filter(None, map(self._generate_forward_declarations, type_domains))))81 sections.append('\n'.join([_f for _f in map(self._generate_forward_declarations, type_domains) if _f])) 76 82 sections.append(self._generate_enum_for_platforms()) 77 sections.append('\n'.join( filter(None, map(self._generate_enums, type_domains))))78 sections.append('\n'.join( filter(None, map(self._generate_types, type_domains))))83 sections.append('\n'.join([_f for _f in map(self._generate_enums, type_domains) if _f])) 84 sections.append('\n'.join([_f for _f in map(self._generate_types, type_domains) if _f])) 79 85 80 86 if self.get_generator_setting('generate_backend', False): 81 sections.append('\n\n'.join( filter(None, map(self._generate_command_protocols, command_domains))))82 sections.append('\n\n'.join( filter(None, map(self._generate_event_interfaces, event_domains))))87 sections.append('\n\n'.join([_f for _f in map(self._generate_command_protocols, command_domains) if _f])) 88 sections.append('\n\n'.join([_f for _f in map(self._generate_event_interfaces, event_domains) if _f])) 83 89 84 90 sections.append(Template(ObjCTemplates.HeaderPostlude).substitute(None)) … … 172 178 lines.append('- (instancetype)initWithProtocolObject:(RWIProtocolJSONObject *)jsonObject;') 173 179 174 required_members = filter(lambda member: not member.is_optional, declaration.type_members)175 optional_members = filter(lambda member: member.is_optional, declaration.type_members)180 required_members = [member for member in declaration.type_members if not member.is_optional] 181 optional_members = [member for member in declaration.type_members if member.is_optional] 176 182 if required_members: 177 183 lines.append(self._generate_init_method_for_required_members(domain, declaration, required_members)) -
trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_internal_header.py
r225231 r236321 30 30 from string import Template 31 31 32 from generator import Generator, ucfirst 33 from objc_generator import ObjCGenerator 34 from objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates 32 try: 33 from .generator import Generator, ucfirst 34 from .objc_generator import ObjCGenerator 35 from .objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates 36 except ValueError: 37 from generator import Generator, ucfirst 38 from objc_generator import ObjCGenerator 39 from objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates 35 40 36 41 log = logging.getLogger('global') … … 56 61 } 57 62 58 event_domains = filter(self.should_generate_events_for_domain, self.domains_to_generate())63 event_domains = list(filter(self.should_generate_events_for_domain, self.domains_to_generate())) 59 64 60 65 sections = [] 61 66 sections.append(self.generate_license()) 62 67 sections.append(Template(ObjCTemplates.GenericHeaderPrelude).substitute(None, **header_args)) 63 sections.append('\n\n'.join( filter(None, map(self._generate_event_dispatcher_private_interfaces, event_domains))))68 sections.append('\n\n'.join([_f for _f in map(self._generate_event_dispatcher_private_interfaces, event_domains) if _f])) 64 69 sections.append(Template(ObjCTemplates.GenericHeaderPostlude).substitute(None, **header_args)) 65 70 return '\n\n'.join(sections) -
trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_protocol_type_conversions_header.py
r233122 r236321 30 30 from string import Template 31 31 32 from generator import Generator 33 from models import EnumType, Frameworks, Platforms 34 from objc_generator import ObjCGenerator 35 from objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates 32 try: 33 from .generator import Generator 34 from .models import EnumType, Frameworks, Platforms 35 from .objc_generator import ObjCGenerator 36 from .objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates 37 except ValueError: 38 from generator import Generator 39 from models import EnumType, Frameworks, Platforms 40 from objc_generator import ObjCGenerator 41 from objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates 36 42 37 43 log = logging.getLogger('global') … … 52 58 53 59 def domains_to_generate(self): 54 return filter(self.should_generate_types_for_domain, Generator.domains_to_generate(self))60 return list(filter(self.should_generate_types_for_domain, Generator.domains_to_generate(self))) 55 61 56 62 def generate_output(self): … … 71 77 sections.append(Template(ObjCTemplates.TypeConversionsHeaderStandard).substitute(None)) 72 78 sections.append(self._generate_enum_conversion_for_platforms()) 73 sections.extend( map(self._generate_enum_conversion_functions, domains))79 sections.extend(list(map(self._generate_enum_conversion_functions, domains))) 74 80 sections.append(Template(ObjCTemplates.TypeConversionsHeaderPostlude).substitute(None, **header_args)) 75 81 return '\n\n'.join(sections) -
trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_protocol_type_conversions_implementation.py
r212462 r236321 29 29 from string import Template 30 30 31 from generator import Generator 32 from models import EnumType, ObjectType, ArrayType, AliasedType, PrimitiveType, Frameworks 33 from objc_generator import ObjCGenerator 34 from objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates 31 try: 32 from .generator import Generator 33 from .models import EnumType, ObjectType, ArrayType, AliasedType, PrimitiveType, Frameworks 34 from .objc_generator import ObjCGenerator 35 from .objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates 36 except ValueError: 37 from generator import Generator 38 from models import EnumType, ObjectType, ArrayType, AliasedType, PrimitiveType, Frameworks 39 from objc_generator import ObjCGenerator 40 from objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates 35 41 36 42 log = logging.getLogger('global') … … 51 57 52 58 def domains_to_generate(self): 53 return filter(self.should_generate_types_for_domain, Generator.domains_to_generate(self))59 return list(filter(self.should_generate_types_for_domain, Generator.domains_to_generate(self))) 54 60 55 61 def generate_output(self): -
trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_protocol_types_implementation.py
r225243 r236321 30 30 from string import Template 31 31 32 from generator import Generator, ucfirst 33 from models import ObjectType, EnumType, Frameworks 34 from objc_generator import ObjCTypeCategory, ObjCGenerator 35 from objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates 32 try: 33 from .generator import Generator, ucfirst 34 from .models import ObjectType, EnumType, Frameworks 35 from .objc_generator import ObjCTypeCategory, ObjCGenerator 36 from .objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates 37 except ValueError: 38 from generator import Generator, ucfirst 39 from models import ObjectType, EnumType, Frameworks 40 from objc_generator import ObjCTypeCategory, ObjCGenerator 41 from objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates 36 42 37 43 log = logging.getLogger('global') … … 52 58 53 59 def domains_to_generate(self): 54 return filter(self.should_generate_types_for_domain, Generator.domains_to_generate(self))60 return list(filter(self.should_generate_types_for_domain, Generator.domains_to_generate(self))) 55 61 56 62 def generate_output(self): … … 76 82 sections.append(self.generate_license()) 77 83 sections.append(Template(ObjCTemplates.ImplementationPrelude).substitute(None, **header_args)) 78 sections.extend( map(self.generate_type_implementations, domains))84 sections.extend(list(map(self.generate_type_implementations, domains))) 79 85 sections.append(Template(ObjCTemplates.ImplementationPostlude).substitute(None, **header_args)) 80 86 return '\n\n'.join(sections) … … 96 102 lines.append(self._generate_init_method_for_payload(domain, declaration)) 97 103 lines.append(self._generate_init_method_for_protocol_object(domain, declaration)) 98 required_members = filter(lambda member: not member.is_optional, declaration.type_members)104 required_members = [member for member in declaration.type_members if not member.is_optional] 99 105 if required_members: 100 106 lines.append('') … … 168 174 lines.append('') 169 175 170 required_pointer_members = filter(lambda member: ObjCGenerator.is_type_objc_pointer_type(member.type), required_members)176 required_pointer_members = [member for member in required_members if ObjCGenerator.is_type_objc_pointer_type(member.type)] 171 177 if required_pointer_members: 172 178 for member in required_pointer_members: -
trunk/Source/JavaScriptCore/inspector/scripts/codegen/generator.py
r236008 r236321 30 30 from string import Template 31 31 32 from generator_templates import GeneratorTemplates as Templates 33 from models import PrimitiveType, ObjectType, ArrayType, EnumType, AliasedType, Frameworks, Platforms 32 try: 33 from .generator_templates import GeneratorTemplates as Templates 34 from .models import PrimitiveType, ObjectType, ArrayType, EnumType, AliasedType, Frameworks, Platforms 35 except ValueError: 36 from generator_templates import GeneratorTemplates as Templates 37 from models import PrimitiveType, ObjectType, ArrayType, EnumType, AliasedType, Frameworks, Platforms 34 38 35 39 log = logging.getLogger('global') … … 142 146 # These methods are overridden by subclasses. 143 147 def non_supplemental_domains(self): 144 return filter(lambda domain: not domain.is_supplemental, self.model().domains)148 return [domain for domain in self.model().domains if not domain.is_supplemental] 145 149 146 150 def domains_to_generate(self): … … 178 182 if not fields: 179 183 return type_declaration.type_members 180 return filter(lambda member: member.member_name in fields, type_declaration.type_members)184 return [member for member in type_declaration.type_members if member.member_name in fields] 181 185 182 186 def type_needs_shape_assertions(self, _type): … … 191 195 # Generator.types_needing_shape_assertions(). 192 196 def calculate_types_requiring_shape_assertions(self, domains): 193 domain_names = map(lambda domain: domain.domain_name, domains)197 domain_names = [domain.domain_name for domain in domains] 194 198 log.debug("> Calculating types that need shape assertions (eligible domains: %s)" % ", ".join(domain_names)) 195 199 … … 247 251 if not isinstance(_type, EnumType): 248 252 continue 249 map(self._assign_encoding_for_enum_value, _type.enum_values())253 list(map(self._assign_encoding_for_enum_value, _type.enum_values())) 250 254 251 255 def _assign_encoding_for_enum_value(self, enum_value): … … 281 285 282 286 # Split on hyphen, introduce camelcase, and force uppercasing of acronyms. 283 subwords = map(ucfirst, _ENUM_IDENTIFIER_RENAME_MAP.get(enum_value, enum_value).split('-'))287 subwords = list(map(ucfirst, _ENUM_IDENTIFIER_RENAME_MAP.get(enum_value, enum_value).split('-'))) 284 288 return re.sub(re.compile(regex, re.IGNORECASE), replaceCallback, "".join(subwords)) 285 289 -
trunk/Source/JavaScriptCore/inspector/scripts/codegen/models.py
r227586 r236321 36 36 37 37 def find_duplicates(l): 38 return [key for key, count in collections.Counter(l).items() if count > 1]38 return [key for key, count in list(collections.Counter(l).items()) if count > 1] 39 39 40 40 -
trunk/Source/JavaScriptCore/inspector/scripts/codegen/objc_generator.py
r225425 r236321 25 25 26 26 import logging 27 from generator import Generator, ucfirst 28 from models import PrimitiveType, ObjectType, ArrayType, EnumType, AliasedType, Frameworks 27 try: 28 from .generator import Generator, ucfirst 29 from .models import PrimitiveType, ObjectType, ArrayType, EnumType, AliasedType, Frameworks 30 except ValueError: 31 from generator import Generator, ucfirst 32 from models import PrimitiveType, ObjectType, ArrayType, EnumType, AliasedType, Frameworks 29 33 30 34 log = logging.getLogger('global') … … 51 55 } 52 56 53 _OBJC_IDENTIFIER_REVERSE_RENAME_MAP = dict((v, k) for k, v in _OBJC_IDENTIFIER_RENAME_MAP.ite ritems())57 _OBJC_IDENTIFIER_REVERSE_RENAME_MAP = dict((v, k) for k, v in _OBJC_IDENTIFIER_RENAME_MAP.items()) 54 58 55 59 -
trunk/Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
r227586 r236321 50 50 # the codegen/ module directory is flattened. So, import directly. 51 51 except ImportError as e: 52 # 52 #log.error(e) # Uncomment this to debug early import errors. 53 53 import models 54 54 from models import * -
trunk/Source/JavaScriptCore/wasm/generateWasm.py
r226395 r236321 72 72 if ret == None: 73 73 ret = lambda op: {"name": op, "opcode": self.opcodes[op]} 74 for op in self.opcodes. iterkeys():74 for op in self.opcodes.keys(): 75 75 if filter(self.opcodes[op]): 76 76 yield ret(op) -
trunk/Source/JavaScriptCore/yarr/generateYarrCanonicalizeUnicode
r226395 r236321 32 32 import re 33 33 import sys 34 from sets import Set35 34 36 35 header = """/* … … 81 80 return open(path, mode) 82 81 except IOError as e: 83 print "I/O error opening {0}, ({1}): {2}".format(path, e.errno, e.strerror)82 print("I/O error opening {0}, ({1}): {2}".format(path, e.errno, e.strerror)) 84 83 exit(1) 85 84 … … 94 93 95 94 def readCaseFolding(self, file): 96 codesSeen = Set()95 codesSeen = set() 97 96 for line in file: 98 97 line = line.split('#', 1)[0] … … 155 154 for i in range(len(characterSets)): 156 155 characters = "" 157 set = characterSets[i]158 for ch in set:156 cur_set = characterSets[i] 157 for ch in cur_set: 159 158 characters = characters + "0x{character:04x}, ".format(character=ch) 160 159 file.write("const UChar32 unicodeCharacterSet{index:d}[] = {{ {characters}0 }};\n".format(index=i, characters=characters)) … … 190 189 canonicalizeHPath = args[1] 191 190 caseFoldingTxtFile = openOrExit(caseFoldingTxtPath, "r") 192 canonicalizeHFile = openOrExit(canonicalizeHPath, "w b")191 canonicalizeHFile = openOrExit(canonicalizeHPath, "w") 193 192 194 193 canonicalize = Canonicalize() -
trunk/Source/JavaScriptCore/yarr/generateYarrUnicodePropertyTables.py
r235972 r236321 323 323 lowCodePoint = None 324 324 highCodePoint = None 325 for idx in xrange(len(matches)):325 for idx in range(len(matches)): 326 326 match = matches[idx] 327 327 if codePoint == match + 1: … … 352 352 highCodePoint = codePoint 353 353 354 for idx in xrange(len(ranges)):355 range = ranges[idx]356 if lowCodePoint >= range[0] and highCodePoint <=range[1]:354 for idx in range(len(ranges)): 355 cur_range = ranges[idx] 356 if lowCodePoint >= cur_range[0] and highCodePoint <= cur_range[1]: 357 357 return 358 if lowCodePoint <= ( range[1] + 1) and highCodePoint >= (range[0] - 1):358 if lowCodePoint <= (cur_range[1] + 1) and highCodePoint >= (cur_range[0] - 1): 359 359 while idx < len(ranges) and highCodePoint >= (ranges[idx][0] - 1): 360 range = ranges[idx]361 lowCodePoint = min(lowCodePoint, range[0])362 highCodePoint = max(highCodePoint, range[1])360 cur_range = ranges[idx] 361 lowCodePoint = min(lowCodePoint, cur_range[0]) 362 highCodePoint = max(highCodePoint, cur_range[1]) 363 363 del ranges[idx] 364 self.codePointCount = self.codePointCount - ( range[1] -range[0]) - 1364 self.codePointCount = self.codePointCount - (cur_range[1] - cur_range[0]) - 1 365 365 366 366 ranges.insert(idx, (lowCodePoint, highCodePoint)) 367 367 self.codePointCount = self.codePointCount + (highCodePoint - lowCodePoint) + 1 368 368 return 369 elif highCodePoint < range[0]:369 elif highCodePoint < cur_range[0]: 370 370 if lowCodePoint != highCodePoint: 371 371 ranges.insert(idx, (lowCodePoint, highCodePoint)) … … 385 385 def addRangeUnorderedForMatchesAndRanges(self, lowCodePoint, highCodePoint, matches, ranges): 386 386 if len(matches) and highCodePoint >= matches[0] and lowCodePoint <= matches[-1]: 387 for idx in xrange(len(matches)):387 for idx in range(len(matches)): 388 388 match = matches[idx] 389 389 if lowCodePoint <= match and highCodePoint >= match: … … 415 415 break 416 416 417 for idx in xrange(len(ranges)):418 range = ranges[idx]419 if lowCodePoint >= range[0] and highCodePoint <=range[1]:417 for idx in range(len(ranges)): 418 cur_range = ranges[idx] 419 if lowCodePoint >= cur_range[0] and highCodePoint <= cur_range[1]: 420 420 return 421 if lowCodePoint <= ( range[1] + 1) and highCodePoint >= (range[0] - 1):421 if lowCodePoint <= (cur_range[1] + 1) and highCodePoint >= (cur_range[0] - 1): 422 422 while idx < len(ranges) and highCodePoint >= (ranges[idx][0] - 1): 423 range = ranges[idx]424 lowCodePoint = min(lowCodePoint, range[0])425 highCodePoint = max(highCodePoint, range[1])423 cur_range = ranges[idx] 424 lowCodePoint = min(lowCodePoint, cur_range[0]) 425 highCodePoint = max(highCodePoint, cur_range[1]) 426 426 del ranges[idx] 427 self.codePointCount = self.codePointCount - ( range[1] -range[0]) - 1427 self.codePointCount = self.codePointCount - (cur_range[1] - cur_range[0]) - 1 428 428 429 429 ranges.insert(idx, (lowCodePoint, highCodePoint)) 430 430 self.codePointCount = self.codePointCount + (highCodePoint - lowCodePoint) + 1 431 431 return 432 elif highCodePoint < range[0]:432 elif highCodePoint < cur_range[0]: 433 433 ranges.insert(idx, (lowCodePoint, highCodePoint)) 434 434 self.codePointCount = self.codePointCount + (highCodePoint - lowCodePoint) + 1 … … 460 460 461 461 def removeMatchFromRanges(self, codePoint, ranges): 462 for idx in xrange(len(ranges)):463 range = ranges[idx]464 if range[0] <= codePoint and codePoint <=range[1]:462 for idx in range(len(ranges)): 463 cur_range = ranges[idx] 464 if cur_range[0] <= codePoint and codePoint <= cur_range[1]: 465 465 ranges.pop(idx) 466 if range[0] < codePoint and codePoint <range[1]:467 lowRange = ( range[0], codePoint - 1)468 highRange = (codePoint + 1, range[1])466 if cur_range[0] < codePoint and codePoint < cur_range[1]: 467 lowRange = (cur_range[0], codePoint - 1) 468 highRange = (codePoint + 1, cur_range[1]) 469 469 # Since list.insert inserts before the index given, handle the high range first 470 470 if highRange[0] == highRange[1]: … … 477 477 ranges.insert(idx, lowRange) 478 478 else: 479 if range[0] == codePoint:480 range = (codePoint + 1,range[1])479 if cur_range[0] == codePoint: 480 cur_range = (codePoint + 1, cur_range[1]) 481 481 else: 482 range = (range[0], codePoint - 1)483 if range[0] ==range[1]:484 self.addMatchUnordered( range[0])482 cur_range = (cur_range[0], codePoint - 1) 483 if cur_range[0] == cur_range[1]: 484 self.addMatchUnordered(cur_range[0]) 485 485 else: 486 ranges.insert(idx, range)486 ranges.insert(idx, cur_range) 487 487 self.codePointCount = self.codePointCount - 1 488 488 return … … 743 743 highCodePoint = int(codePoints[dotDot + 2:], 16) 744 744 currentPropertyData.addRange(lowCodePoint, highCodePoint) 745 for codePoint in xrange(lowCodePoint, highCodePoint + 1):745 for codePoint in range(lowCodePoint, highCodePoint + 1): 746 746 commonScriptExtenstionPropertyData.removeMatch(codePoint) 747 747 inheritedScriptExtensionPropertyData.removeMatch(codePoint) … … 749 749 # For the scripts that don't have any additional extension codePoints, copy the script 750 750 # data to the script extension with the same name 751 for scriptName, propertyData in self.scriptsByName.ite ritems():751 for scriptName, propertyData in self.scriptsByName.items(): 752 752 if scriptName not in self.scriptExtensionsByName: 753 753 self.scriptExtensionsByName[scriptName] = propertyData … … 949 949 aliases = Aliases() 950 950 951 propertyDataHFile = openOrExit(unicodeProertyDataHPath, "w b")951 propertyDataHFile = openOrExit(unicodeProertyDataHPath, "w") 952 952 953 953 propertyDataHFile.write(header) -
trunk/Source/JavaScriptCore/yarr/hasher.py
r235972 r236321 37 37 38 38 strLength = len(str) 39 characterPairs = strLength / 239 characterPairs = int(strLength / 2) 40 40 remainder = strLength & 1 41 41 -
trunk/Source/WebCore/ChangeLog
r236317 r236321 1 2018-09-21 Mike Gorse <mgorse@suse.com> 2 3 Build tools should work when the /usr/bin/python is python3 4 https://bugs.webkit.org/show_bug.cgi?id=156674 5 6 Reviewed by Michael Catanzaro. 7 8 No new tests (no behavior change). 9 10 * platform/network/create-http-header-name-table: remove xreadlines. 11 1 12 2018-09-21 Jer Noble <jer.noble@apple.com> 2 13 -
trunk/Source/WebCore/platform/network/create-http-header-name-table
r235935 r236321 43 43 http_header_names = [] 44 44 45 for line in input_file .xreadlines():45 for line in input_file: 46 46 http_header_name = line.strip() 47 47 if not http_header_name or http_header_name[:2] == '//': -
trunk/Source/WebInspectorUI/ChangeLog
r236298 r236321 1 2018-09-21 Mike Gorse <mgorse@suse.com> 2 3 Build tools should work when the /usr/bin/python is python3 4 https://bugs.webkit.org/show_bug.cgi?id=156674 5 6 Reviewed by Michael Catanzaro. 7 8 * Scripts/copy-user-interface-resources.pl: Use $PYTHON if set 9 in the environment. 10 1 11 2018-09-20 Devin Rousso <drousso@apple.com> 2 12 -
trunk/Source/WebInspectorUI/Scripts/copy-user-interface-resources.pl
r233717 r236321 177 177 make_path($protocolDir, $targetResourcePath); 178 178 179 $python = $ENV{"PYTHON"} if defined($ENV{"PYTHON"}); 180 179 181 # Copy over dynamically loaded files from other frameworks, even if we aren't combining resources. 180 182 copy(File::Spec->catfile($ENV{'JAVASCRIPTCORE_PRIVATE_HEADERS_DIR'}, 'InspectorBackendCommands.js'), File::Spec->catfile($protocolDir, 'InspectorBackendCommands.js')) or die "Copy of InspectorBackendCommands.js failed: $!"; -
trunk/Source/cmake/WebKitCommon.cmake
r235531 r236321 22 22 23 23 find_package(PythonInterp 2.7.0 REQUIRED) 24 if (PYTHON_VERSION_MAJOR GREATER 2)25 message(FATAL_ERROR "Python 2 is required, but Python ${PYTHON_VERSION_MAJOR} was found.")26 endif ()27 24 28 25 # We cannot check for RUBY_FOUND because it is set only when the full package is installed and
Note: See TracChangeset
for help on using the changeset viewer.