def generate_section_for_global_private_code_name_macro(self): args = { 'macroPrefix': self.model().framework.setting('macro_prefix'), } lines = [] lines.append( "#define %(macroPrefix)s_FOREACH_BUILTIN_FUNCTION_PRIVATE_GLOBAL_NAME(macro) \\" % args) functions = [ function for function in self.model().all_functions() if function.is_global_private ] functions.sort(key=lambda x: x.function_name) for function in functions: function_args = { 'varName': get_var_name(function), 'funcName': function.function_name, 'codeName': BuiltinsGenerator.mangledNameForFunction(function), } lines.append( " macro(%(varName)s, %(funcName)s, %(codeName)s) \\" % function_args) return '\n'.join(lines)
def generate_externs_for_object(self, object): lines = [] for function in object.functions: function_args = { 'codeName': BuiltinsGenerator.mangledNameForFunction(function) + 'Code', } lines.append("""extern const char* s_%(codeName)s; extern const int s_%(codeName)sLength; extern const JSC::ConstructAbility s_%(codeName)sConstructAbility;""" % function_args) return lines
def generate_section_for_code_table_macro(self): args = { 'macroPrefix': self.model().framework.setting('macro_prefix'), } lines = [] lines.append("#define %(macroPrefix)s_FOREACH_BUILTIN_CODE(macro) \\" % args) for function in self.model().all_functions(): function_args = { 'funcName': function.function_name, 'codeName': BuiltinsGenerator.mangledNameForFunction(function) + 'Code', } lines.append(" macro(%(codeName)s, %(funcName)s, s_%(codeName)sLength) \\" % function_args) return '\n'.join(lines)
def generate_macros_for_object(self, object): args = { 'macroPrefix': self.model().framework.setting('macro_prefix'), 'objectMacro': object.object_name.replace('.', '').upper(), } lines = [] lines.append("#define %(macroPrefix)s_FOREACH_%(objectMacro)s_BUILTIN_DATA(macro) \\" % args) for function in object.functions: function_args = { 'funcName': function.function_name, 'mangledName': BuiltinsGenerator.mangledNameForFunction(function), 'paramCount': len(function.parameters), } lines.append(" macro(%(funcName)s, %(mangledName)s, %(paramCount)d) \\" % function_args) return lines
def generate_macros_for_object(self, object): args = { 'macroPrefix': self.macro_prefix(), 'objectMacro': object.object_name.replace('.', '_').upper(), } lines = [] lines.append("#define %(macroPrefix)s_FOREACH_%(objectMacro)s_BUILTIN_DATA(macro) \\" % args) for function in object.functions: function_args = { 'funcName': function.function_name, 'mangledName': BuiltinsGenerator.mangledNameForFunction(function), 'paramCount': len(function.parameters), } lines.append(" macro(%(funcName)s, %(mangledName)s, %(paramCount)d) \\" % function_args) return lines
def generate_section_for_global_private_code_name_macro(self): args = { 'macroPrefix': self.model().framework.setting('macro_prefix'), } lines = [] lines.append("#define %(macroPrefix)s_FOREACH_BUILTIN_FUNCTION_PRIVATE_GLOBAL_NAME(macro) \\" % args) functions = filter(lambda function: function.is_global_private, self.model().all_functions()) functions.sort(key=lambda x: x.function_name) for function in functions: function_args = { 'funcName': function.function_name, 'codeName': BuiltinsGenerator.mangledNameForFunction(function), } lines.append(" macro(%(funcName)s, %(codeName)s) \\" % function_args) return '\n'.join(lines)