diff --git a/src/runtime/gravity_vm.c b/src/runtime/gravity_vm.c index 395766b..d24765d 100644 --- a/src/runtime/gravity_vm.c +++ b/src/runtime/gravity_vm.c @@ -630,6 +630,7 @@ static bool gravity_vm_exec (gravity_vm *vm) { // check for special setter trick if (VALUE_ISA_CLOSURE(STACK_GET(r1))) { closure = VALUE_AS_CLOSURE(STACK_GET(r1)); + if (closure->f->tag == EXEC_TYPE_INTERNAL) r1copy = STACK_GET(rwin+1); SETVALUE(r1, r1copy); reset_r1 = true; goto execute_store_function; diff --git a/src/shared/gravity_value.h b/src/shared/gravity_value.h index 8cc3e40..a2fd578 100644 --- a/src/shared/gravity_value.h +++ b/src/shared/gravity_value.h @@ -66,8 +66,8 @@ extern "C" { #endif -#define GRAVITY_VERSION "0.8.4" // git tag 0.8.4 -#define GRAVITY_VERSION_NUMBER 0x000804 // git push --tags +#define GRAVITY_VERSION "0.8.5" // git tag 0.8.5 +#define GRAVITY_VERSION_NUMBER 0x000805 // git push --tags #define GRAVITY_BUILD_DATE __DATE__ #ifndef GRAVITY_ENABLE_DOUBLE