Put reference on executable object's this_binding to avoid unwanted f… (#5169)
…rees before exiting execution This patch fixes #4870. The implementation is based on PR #4966, only resolved the conflicts and applied requested changes. Co-authored-by: Martin Negyokru negyokru@inf.u-szeged.hu JerryScript-DCO-1.0-Signed-off-by: Gergo Csizi gergocs@inf.u-szeged.hu
This commit is contained in:
@@ -737,6 +737,7 @@ opfunc_resume_executable_object (vm_executable_object_t *executable_object_p, /*
|
||||
ecma_ref_if_object (*register_p++);
|
||||
}
|
||||
|
||||
ecma_ref_if_object (executable_object_p->frame_ctx.this_binding);
|
||||
ecma_ref_if_object (executable_object_p->iterator);
|
||||
|
||||
JERRY_ASSERT (ECMA_EXECUTABLE_OBJECT_IS_SUSPENDED (executable_object_p));
|
||||
@@ -770,6 +771,7 @@ opfunc_resume_executable_object (vm_executable_object_t *executable_object_p, /*
|
||||
|
||||
/* All resources are released. */
|
||||
executable_object_p->extended_object.u.cls.u2.executable_obj_flags |= ECMA_EXECUTABLE_OBJECT_COMPLETED;
|
||||
ecma_deref_if_object (executable_object_p->frame_ctx.this_binding);
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -798,6 +800,7 @@ opfunc_resume_executable_object (vm_executable_object_t *executable_object_p, /*
|
||||
ecma_deref_if_object (*register_p++);
|
||||
}
|
||||
|
||||
ecma_deref_if_object (executable_object_p->frame_ctx.this_binding);
|
||||
ecma_deref_if_object (executable_object_p->iterator);
|
||||
|
||||
return result;
|
||||
|
||||
Reference in New Issue
Block a user