Fills in the rest of function data into the skeleton function object
        that were created via _make_skel_func().

def _fill_function(func, globals, defaults, dict, module, closure_values):
    """ Fills in the rest of function data into the skeleton function object
        that were created via _make_skel_func().
    """
    func.__globals__.update(globals)
    func.__defaults__ = defaults
    func.__dict__ = dict
    func.__module__ = module

    cells = func.__closure__
    if cells is not None:
        for cell, value in zip(cells, closure_values):
            if value is not _empty_cell_value:
                cell_set(cell, value)

    return func