wasm/formatter.py
def format_function(
    func_body,
    func_type=None,
    indent=2,
    format_locals=True,
):
    """
    Takes a `FunctionBody` and optionally a `FunctionType`, yielding the string 
    representation of the function line by line. The function type is required
    for formatting function parameter and return value information.
    """
    if func_type is None:
        yield 'func'
    else:
        param_section = ' (param {})'.format(' '.join(
            map(format_lang_type, func_type.param_types)
        )) if func_type.param_types else ''
        result_section = ' (result {})'.format(
            format_lang_type(func_type.return_type)
        ) if func_type.return_type else ''
        yield 'func' + param_section + result_section

    if format_locals and func_body.locals:
        yield '(locals {})'.format(' '.join(itertools.chain.from_iterable(
            itertools.repeat(format_lang_type(x.type), x.count)
            for x in func_body.locals
        )))

    level = 1
    for cur_insn in decode_bytecode(func_body.code):
        if cur_insn.op.flags & INSN_LEAVE_BLOCK:
            level -= 1
        yield ' ' * (level * indent) + format_instruction(cur_insn)
        if cur_insn.op.flags & INSN_ENTER_BLOCK:
            level += 1

    Takes a `FunctionBody` and optionally a `FunctionType`, yielding the string 
    representation of the function line by line. The function type is required
    for formatting function parameter and return value information.
    
Takes a `FunctionBody` and optionally a `FunctionType`, yielding the string
representation of the function line by line. The function type is required
for formatting function parameter and return value information.
Takes a ` FunctionBody ` and optionally a ` FunctionType ` yielding the string representation of the function line by line . The function type is required for formatting function parameter and return value information .
def format_function(
    func_body,
    func_type=None,
    indent=2,
    format_locals=True,
):
    if func_type is None:
        yield 'func'
    else:
        param_section = ' (param {})'.format(' '.join(
            map(format_lang_type, func_type.param_types)
        )) if func_type.param_types else ''
        result_section = ' (result {})'.format(
            format_lang_type(func_type.return_type)
        ) if func_type.return_type else ''
        yield 'func' + param_section + result_section
    if format_locals and func_body.locals:
        yield '(locals {})'.format(' '.join(itertools.chain.from_iterable(
            itertools.repeat(format_lang_type(x.type), x.count)
            for x in func_body.locals
        )))
    level = 1
    for cur_insn in decode_bytecode(func_body.code):
        if cur_insn.op.flags & INSN_LEAVE_BLOCK:
            level -= 1
        yield ' ' * (level * indent) + format_instruction(cur_insn)
        if cur_insn.op.flags & INSN_ENTER_BLOCK:
            level += 1
def format_function ( func_body , func_type = None , indent = 2 , format_locals = True , ) : if func_type is None : yield 'func' else : param_section = ' (param {})' . format ( ' ' . join ( map ( format_lang_type , func_type . param_types ) ) ) if func_type . param_types else '' result_section = ' (result {})' . format ( format_lang_type ( func_type . return_type ) ) if func_type . return_type else '' yield 'func' + param_section + result_section if format_locals and func_body . locals : yield '(locals {})' . format ( ' ' . join ( itertools . chain . from_iterable ( itertools . repeat ( format_lang_type ( x . type ) , x . count ) for x in func_body . locals ) ) ) level = 1 for cur_insn in decode_bytecode ( func_body . code ) : if cur_insn . op . flags & INSN_LEAVE_BLOCK : level -= 1 yield ' ' * ( level * indent ) + format_instruction ( cur_insn ) if cur_insn . op . flags & INSN_ENTER_BLOCK : level += 1
Takes a `FunctionBody` and optionally a `FunctionType`, yielding the string
representation of the function line by line.
Takes a ` FunctionBody ` and optionally a ` FunctionType ` yielding the string representation of the function line by line .
"""
    Takes a `FunctionBody` and optionally a `FunctionType`, yielding the string 
    representation of the function line by line. The function type is required
    for formatting function parameter and return value information.
    """
func_body
func_type
indent
format_locals