@@ -1689,6 +1689,11 @@ pub fn Env(comptime State: type, comptime WebApis: type) type {
16891689 specifier : []const u8 ,
16901690 module : v8 .Persistent (v8 .Module ),
16911691 resolver : v8 .Persistent (v8 .PromiseResolver ),
1692+
1693+ pub fn deinit (ev : * @This ()) void {
1694+ ev .module .deinit ();
1695+ ev .resolver .deinit ();
1696+ }
16921697 };
16931698
16941699 const ev_data = try self .context_arena .create (EvaluationData );
@@ -1705,6 +1710,7 @@ pub fn Env(comptime State: type, comptime WebApis: type) type {
17051710 const cb_isolate = cb_info .getIsolate ();
17061711 const cb_context = cb_isolate .getCurrentContext ();
17071712 const data : * EvaluationData = @ptrCast (@alignCast (cb_info .getExternalValue ()));
1713+ defer data .deinit ();
17081714 const cb_module = data .module .castToModule ();
17091715 const cb_resolver = data .resolver .castToPromiseResolver ();
17101716
@@ -1719,6 +1725,7 @@ pub fn Env(comptime State: type, comptime WebApis: type) type {
17191725 const cb_info = v8.FunctionCallbackInfo { .handle = info .? };
17201726 const cb_context = cb_info .getIsolate ().getCurrentContext ();
17211727 const data : * EvaluationData = @ptrCast (@alignCast (cb_info .getExternalValue ()));
1728+ defer data .deinit ();
17221729 const cb_resolver = data .resolver .castToPromiseResolver ();
17231730
17241731 log .err (.js , "dynamic import failed" , .{ .specifier = data .specifier });
@@ -1731,6 +1738,7 @@ pub fn Env(comptime State: type, comptime WebApis: type) type {
17311738 .specifier = specifier ,
17321739 .line = try_catch .sourceLineNumber () orelse 0 ,
17331740 });
1741+ defer ev_data .deinit ();
17341742 const error_msg = v8 .String .initUtf8 (iso , "Evaluation is a promise" );
17351743 _ = resolver .reject (ctx , error_msg .toValue ());
17361744 return ;
0 commit comments