src/melon/modules/object/object_module.c
static TByte mergeFunc(VM* vm)
{
    melM_arg(vm, target, MELON_TYPE_OBJECT, 0);
    melM_arg(vm, with, MELON_TYPE_OBJECT, 1);
    melM_argOptional(vm, deep, MELON_TYPE_BOOL, 2);

    melM_stackEnsure(&vm->stack, vm->stack.top + 1);
    Value* result = melM_stackAllocRaw(&vm->stack);
    result->type = MELON_TYPE_BOOL;
    result->pack.value.boolean = melMergeObject(
        vm, 
        target->pack.obj,
        with->pack.obj, 
        deep->type != MELON_TYPE_NULL ? deep->pack.value.boolean : 0
    ) == 0;

    return 1;
}
/***
 * Merges two objects adding to `target` any key that is missing from it
 * but that was found in `with`.
 * 
 * @arg target The object that will be modified
 * @arg with The object with the keys to add to `target` is any is missing
 * @arg ?deep `true` if the merging should be done recursively. Defaults to `false`
 * 
 * @returns `true` if the two objects were merged successfuly, `false` otherwise.
 */
Merges two objects adding to `target` any key that is missing from it
but that was found in `with`.

@arg target The object that will be modified
@arg with The object with the keys to add to `target` is any is missing
@arg ?deep `true` if the merging should be done recursively. Defaults to `false`

@returns `true` if the two objects were merged successfuly, `false` otherwise.
Merges two objects adding to ` target ` any key that is missing from it but that was found in ` with ` . @arg target The object that will be modified @arg with The object with the keys to add to ` target ` is any is missing @arg ?deep ` true ` if the merging should be done recursively . Defaults to ` false ` @returns ` true ` if the two objects were merged successfuly ` false ` otherwise .
static TByte mergeFunc(VM* vm)
{
    melM_arg(vm, target, MELON_TYPE_OBJECT, 0);
    melM_arg(vm, with, MELON_TYPE_OBJECT, 1);
    melM_argOptional(vm, deep, MELON_TYPE_BOOL, 2);
    melM_stackEnsure(&vm->stack, vm->stack.top + 1);
    Value* result = melM_stackAllocRaw(&vm->stack);
    result->type = MELON_TYPE_BOOL;
    result->pack.value.boolean = melMergeObject(
        vm, 
        target->pack.obj,
        with->pack.obj, 
        deep->type != MELON_TYPE_NULL ? deep->pack.value.boolean : 0
    ) == 0;
    return 1;
}
static TByte mergeFunc ( VM * vm ) { melM_arg ( vm , target , MELON_TYPE_OBJECT , 0 ) ; melM_arg ( vm , with , MELON_TYPE_OBJECT , 1 ) ; melM_argOptional ( vm , deep , MELON_TYPE_BOOL , 2 ) ; melM_stackEnsure ( & vm -> stack , vm -> stack . top + 1 ) ; Value * result = melM_stackAllocRaw ( & vm -> stack ) ; result -> type = MELON_TYPE_BOOL ; result -> pack . value . boolean = melMergeObject ( vm , target -> pack . obj , with -> pack . obj , deep -> type != MELON_TYPE_NULL ? deep -> pack . value . boolean : 0 ) == 0 ; return 1 ; }
Merges two objects adding to `target` any key that is missing from it
 but that was found in `with`.
Merges two objects adding to ` target ` any key that is missing from it but that was found in ` with ` .