feat: add object escaping on assing to variable in outer env

This commit is contained in:
samsonium
2026-10-29 17:46:56 +03:00
parent 2cf96d06c6
commit a885746fdd
5 changed files with 39 additions and 9 deletions
+6 -4
View File
@@ -4,8 +4,8 @@
#include <vm/internals/opcode.h>
// Escape objects with nested objects check
static void escape_recursive(fzl_vm_env_t *current, fzl_vm_env_t *parent,
fzl_vm_object_t *obj)
void escape_recursive(fzl_vm_env_t *current, fzl_vm_env_t *parent,
fzl_vm_object_t *obj)
{
if (!current || !parent || !obj)
return;
@@ -60,8 +60,10 @@ int op_alloc_object(fzl_vm_t *vm)
uint64_t values_count = vm->ops[++vm->ip];
fzl_vm_object_t *obj = malloc(sizeof(fzl_vm_object_t));
if (values_count > 0)
obj->values = malloc(values_count * sizeof(fzl_value_t));
if (values_count < 1)
values_count = 1;
obj->values = malloc(values_count * sizeof(fzl_value_t));
obj->values_count = values_count;
memset(obj->values, 0, values_count * sizeof(fzl_value_t));