@@ -211,7 +211,7 @@ js_create_platform(uv_loop_t *loop, const js_platform_options_t *options, js_pla
211
211
js_platform_t * platform = malloc (sizeof (js_platform_t ));
212
212
213
213
platform -> loop = loop ;
214
- platform -> options = options ? * options : (js_platform_options_t ) {};
214
+ platform -> options = options ? * options : (js_platform_options_t ){};
215
215
216
216
* result = platform ;
217
217
@@ -304,7 +304,7 @@ js__on_delegate_finalize(JSRuntime *runtime, JSValue value);
304
304
static JSClassDef js_delegate_class = {
305
305
.class_name = "Delegate" ,
306
306
.finalizer = js__on_delegate_finalize ,
307
- .exotic = & (JSClassExoticMethods ) {
307
+ .exotic = & (JSClassExoticMethods ){
308
308
.get_own_property = js__on_delegate_get_own_property ,
309
309
.get_own_property_names = js__on_delegate_get_own_property_names ,
310
310
.delete_property = js__on_delegate_delete_property ,
@@ -405,7 +405,7 @@ js__on_uncaught_exception(JSContext *context, JSValue error) {
405
405
406
406
env -> callbacks .uncaught_exception (
407
407
env ,
408
- & (js_value_t ) {error },
408
+ & (js_value_t ){error },
409
409
env -> callbacks .uncaught_exception_data
410
410
);
411
411
@@ -431,8 +431,8 @@ js__on_unhandled_rejection(JSContext *context, JSValue promise, JSValue reason)
431
431
432
432
env -> callbacks .unhandled_rejection (
433
433
env ,
434
- & (js_value_t ) {reason },
435
- & (js_value_t ) {promise },
434
+ & (js_value_t ){reason },
435
+ & (js_value_t ){promise },
436
436
env -> callbacks .unhandled_rejection_data
437
437
);
438
438
@@ -607,7 +607,7 @@ js_create_env(uv_loop_t *loop, js_platform_t *platform, const js_env_options_t *
607
607
int err ;
608
608
609
609
JSRuntime * runtime = JS_NewRuntime2 (
610
- & (JSMallocFunctions ) {
610
+ & (JSMallocFunctions ){
611
611
.js_calloc = js__on_calloc ,
612
612
.js_malloc = js__on_malloc ,
613
613
.js_free = js__on_free ,
@@ -619,7 +619,7 @@ js_create_env(uv_loop_t *loop, js_platform_t *platform, const js_env_options_t *
619
619
620
620
JS_SetSharedArrayBufferFunctions (
621
621
runtime ,
622
- & (JSSharedArrayBufferFunctions ) {
622
+ & (JSSharedArrayBufferFunctions ){
623
623
.sab_alloc = js__on_shared_malloc ,
624
624
.sab_free = js__on_shared_free ,
625
625
.sab_dup = js__on_shared_dup ,
@@ -649,20 +649,6 @@ js_create_env(uv_loop_t *loop, js_platform_t *platform, const js_env_options_t *
649
649
650
650
js_env_t * env = malloc (sizeof (js_env_t ));
651
651
652
- JS_NewClassID (runtime , & env -> classes .external );
653
- JS_NewClassID (runtime , & env -> classes .finalizer );
654
- JS_NewClassID (runtime , & env -> classes .type_tag );
655
- JS_NewClassID (runtime , & env -> classes .function );
656
- JS_NewClassID (runtime , & env -> classes .constructor );
657
- JS_NewClassID (runtime , & env -> classes .delegate );
658
-
659
- JS_NewClass (runtime , env -> classes .external , & js_external_class );
660
- JS_NewClass (runtime , env -> classes .finalizer , & js_finalizer_class );
661
- JS_NewClass (runtime , env -> classes .type_tag , & js_type_tag_class );
662
- JS_NewClass (runtime , env -> classes .function , & js_function_class );
663
- JS_NewClass (runtime , env -> classes .constructor , & js_constructor_class );
664
- JS_NewClass (runtime , env -> classes .delegate , & js_delegate_class );
665
-
666
652
env -> loop = loop ;
667
653
env -> active_handles = 2 ;
668
654
@@ -681,6 +667,13 @@ js_create_env(uv_loop_t *loop, js_platform_t *platform, const js_env_options_t *
681
667
682
668
env -> promise_rejections = NULL ;
683
669
670
+ env -> classes .external = 0 ;
671
+ env -> classes .finalizer = 0 ;
672
+ env -> classes .type_tag = 0 ;
673
+ env -> classes .function = 0 ;
674
+ env -> classes .constructor = 0 ;
675
+ env -> classes .delegate = 0 ;
676
+
684
677
env -> callbacks .uncaught_exception = NULL ;
685
678
env -> callbacks .uncaught_exception_data = NULL ;
686
679
@@ -693,6 +686,30 @@ js_create_env(uv_loop_t *loop, js_platform_t *platform, const js_env_options_t *
693
686
JS_SetRuntimeOpaque (env -> runtime , env );
694
687
JS_SetContextOpaque (env -> context , env );
695
688
689
+ JS_NewClassID (runtime , & env -> classes .external );
690
+ err = JS_NewClass (runtime , env -> classes .external , & js_external_class );
691
+ assert (err == 0 );
692
+
693
+ JS_NewClassID (runtime , & env -> classes .finalizer );
694
+ err = JS_NewClass (runtime , env -> classes .finalizer , & js_finalizer_class );
695
+ assert (err == 0 );
696
+
697
+ JS_NewClassID (runtime , & env -> classes .type_tag );
698
+ err = JS_NewClass (runtime , env -> classes .type_tag , & js_type_tag_class );
699
+ assert (err == 0 );
700
+
701
+ JS_NewClassID (runtime , & env -> classes .function );
702
+ err = JS_NewClass (runtime , env -> classes .function , & js_function_class );
703
+ assert (err == 0 );
704
+
705
+ JS_NewClassID (runtime , & env -> classes .constructor );
706
+ err = JS_NewClass (runtime , env -> classes .constructor , & js_constructor_class );
707
+ assert (err == 0 );
708
+
709
+ JS_NewClassID (runtime , & env -> classes .delegate );
710
+ err = JS_NewClass (runtime , env -> classes .delegate , & js_delegate_class );
711
+ assert (err == 0 );
712
+
696
713
err = uv_prepare_init (loop , & env -> prepare );
697
714
assert (err == 0 );
698
715
@@ -724,6 +741,16 @@ js__on_handle_close(uv_handle_t *handle) {
724
741
js_env_t * env = (js_env_t * ) handle -> data ;
725
742
726
743
if (-- env -> active_handles == 0 ) {
744
+ js_module_evaluator_t * evaluator = env -> evaluators ;
745
+
746
+ while (evaluator ) {
747
+ js_module_evaluator_t * next = evaluator -> next ;
748
+
749
+ free (evaluator );
750
+
751
+ evaluator = next ;
752
+ }
753
+
727
754
free (env );
728
755
}
729
756
}
@@ -1154,7 +1181,7 @@ js_run_module(js_env_t *env, js_module_t *module, js_value_t **result) {
1154
1181
if (module -> meta ) {
1155
1182
JSValue meta = JS_GetImportMeta (env -> context , module -> definition );
1156
1183
1157
- module -> meta (env , module , & (js_value_t ) {meta }, module -> meta_data );
1184
+ module -> meta (env , module , & (js_value_t ){meta }, module -> meta_data );
1158
1185
1159
1186
JS_FreeValue (env -> context , meta );
1160
1187
@@ -1165,7 +1192,7 @@ js_run_module(js_env_t *env, js_module_t *module, js_value_t **result) {
1165
1192
err = js_create_promise (env , & deferred , result );
1166
1193
if (err < 0 ) return err ;
1167
1194
1168
- js_reject_deferred (env , deferred , & (js_value_t ) {error });
1195
+ js_reject_deferred (env , deferred , & (js_value_t ){error });
1169
1196
1170
1197
JS_FreeValue (env -> context , error );
1171
1198
@@ -1190,7 +1217,7 @@ js_run_module(js_env_t *env, js_module_t *module, js_value_t **result) {
1190
1217
err = js_create_promise (env , & deferred , result );
1191
1218
if (err < 0 ) return err ;
1192
1219
1193
- js_reject_deferred (env , deferred , & (js_value_t ) {error });
1220
+ js_reject_deferred (env , deferred , & (js_value_t ){error });
1194
1221
1195
1222
JS_FreeValue (env -> context , error );
1196
1223
@@ -1471,7 +1498,7 @@ js_define_class(js_env_t *env, const char *name, size_t len, js_function_cb cons
1471
1498
}
1472
1499
}
1473
1500
1474
- err = js_define_properties (env , & (js_value_t ) {prototype }, instance_properties , instance_properties_len );
1501
+ err = js_define_properties (env , & (js_value_t ){prototype }, instance_properties , instance_properties_len );
1475
1502
assert (err == 0 );
1476
1503
1477
1504
free (instance_properties );
@@ -1488,7 +1515,7 @@ js_define_class(js_env_t *env, const char *name, size_t len, js_function_cb cons
1488
1515
}
1489
1516
}
1490
1517
1491
- err = js_define_properties (env , & (js_value_t ) {class }, static_properties , static_properties_len );
1518
+ err = js_define_properties (env , & (js_value_t ){class }, static_properties , static_properties_len );
1492
1519
assert (err == 0 );
1493
1520
1494
1521
free (static_properties );
@@ -1673,7 +1700,7 @@ js__on_delegate_get_own_property(JSContext *context, JSPropertyDescriptor *descr
1673
1700
if (delegate -> callbacks .has ) {
1674
1701
JSValue property = JS_AtomToValue (env -> context , name );
1675
1702
1676
- bool exists = delegate -> callbacks .has (env , & (js_value_t ) {property }, delegate -> data );
1703
+ bool exists = delegate -> callbacks .has (env , & (js_value_t ){property }, delegate -> data );
1677
1704
1678
1705
JS_FreeValue (env -> context , property );
1679
1706
@@ -1685,7 +1712,7 @@ js__on_delegate_get_own_property(JSContext *context, JSPropertyDescriptor *descr
1685
1712
if (delegate -> callbacks .get ) {
1686
1713
JSValue property = JS_AtomToValue (env -> context , name );
1687
1714
1688
- js_value_t * result = delegate -> callbacks .get (env , & (js_value_t ) {property }, delegate -> data );
1715
+ js_value_t * result = delegate -> callbacks .get (env , & (js_value_t ){property }, delegate -> data );
1689
1716
1690
1717
JS_FreeValue (env -> context , property );
1691
1718
@@ -1754,7 +1781,7 @@ js__on_delegate_delete_property(JSContext *context, JSValueConst object, JSAtom
1754
1781
if (delegate -> callbacks .delete_property ) {
1755
1782
JSValue property = JS_AtomToValue (env -> context , name );
1756
1783
1757
- bool success = delegate -> callbacks .delete_property (env , & (js_value_t ) {property }, delegate -> data );
1784
+ bool success = delegate -> callbacks .delete_property (env , & (js_value_t ){property }, delegate -> data );
1758
1785
1759
1786
JS_FreeValue (env -> context , property );
1760
1787
@@ -1775,7 +1802,7 @@ js__on_delegate_set_property(JSContext *context, JSValueConst object, JSAtom nam
1775
1802
if (delegate -> callbacks .set ) {
1776
1803
JSValue property = JS_AtomToValue (env -> context , name );
1777
1804
1778
- bool success = delegate -> callbacks .set (env , & (js_value_t ) {property }, & (js_value_t ) {value }, delegate -> data );
1805
+ bool success = delegate -> callbacks .set (env , & (js_value_t ){property }, & (js_value_t ){value }, delegate -> data );
1779
1806
1780
1807
JS_FreeValue (env -> context , property );
1781
1808
@@ -2082,6 +2109,8 @@ js_create_string_utf16le(js_env_t *env, const utf16_t *str, size_t len, js_value
2082
2109
2083
2110
wrapper -> value = JS_NewStringLen (env -> context , (char * ) utf8 , utf8_len );
2084
2111
2112
+ free (utf8 );
2113
+
2085
2114
* result = wrapper ;
2086
2115
2087
2116
js__attach_to_handle_scope (env , env -> scope , wrapper );
@@ -2105,6 +2134,8 @@ js_create_string_latin1(js_env_t *env, const latin1_t *str, size_t len, js_value
2105
2134
2106
2135
wrapper -> value = JS_NewStringLen (env -> context , (char * ) utf8 , utf8_len );
2107
2136
2137
+ free (utf8 );
2138
+
2108
2139
* result = wrapper ;
2109
2140
2110
2141
js__attach_to_handle_scope (env , env -> scope , wrapper );
0 commit comments