@@ -54,14 +54,15 @@ int main(int argc, char* argv[]) {
5454 "cart?.load && cart.load();\n" ;
5555
5656 JSValue std_val = JS_Eval (ctx , str , strlen (str ), "<CART>" , JS_EVAL_TYPE_MODULE );
57- std_val = js_std_await (ctx , std_val );
5857
5958 if (!JS_IsException (std_val )) {
6059 js_module_set_import_meta (ctx , std_val , true, true);
6160 std_val = JS_EvalFunction (ctx , std_val );
6261 } else {
6362 js_std_dump_error (ctx );
6463 }
64+
65+ std_val = js_std_await (ctx , std_val );
6566
6667 JS_FreeValue (ctx , std_val );
6768}
@@ -187,8 +188,8 @@ static uint64_t u64_from_js(JSValue val) {
187188 return result ;
188189}
189190
190- static const char * string_from_js (JSValue val ) {
191- return JS_ToCString (ctx , val );
191+ static char * string_from_js (JSValue val ) {
192+ return ( char * ) JS_ToCString (ctx , val );
192193}
193194
194195static JSValue dimensions_to_js (Dimensions dims ) {
@@ -223,7 +224,7 @@ static JSValue color_to_js(Color color) {
223224 return obj ;
224225}
225226
226- static Vector * vector_array_from_js (JSValue vecArray , uint32_t * lenPointer ) {
227+ static Vector * vector_array_from_js (JSValue vecArray , size_t * lenPointer ) {
227228 // Check if the input is actually an array
228229 if (!JS_IsArray (vecArray )) {
229230 return NULL ;
@@ -237,7 +238,7 @@ static Vector* vector_array_from_js(JSValue vecArray, uint32_t* lenPointer) {
237238
238239 if (len == 0 ) return NULL ;
239240
240- * lenPointer = len ;
241+ * lenPointer = ( size_t ) len ;
241242
242243 // Allocate memory for the Vector array (caller must free)
243244 Vector * vecs = malloc (len * sizeof (Vector ));
@@ -268,33 +269,33 @@ static Vector* vector_array_from_js(JSValue vecArray, uint32_t* lenPointer) {
268269}
269270
270271
271- static Dimensions dimensions_from_js (JSValue obj ) {
272+ __attribute__(( unused )) static Dimensions dimensions_from_js (JSValue obj ) {
272273 Dimensions dims = {0 , 0 }; // Default values
273-
274+
274275 JSValue width_val = JS_GetPropertyStr (ctx , obj , "width" );
275276 JSValue height_val = JS_GetPropertyStr (ctx , obj , "height" );
276-
277+
277278 JS_ToUint32 (ctx , & dims .width , width_val );
278279 JS_ToUint32 (ctx , & dims .height , height_val );
279-
280+
280281 JS_FreeValue (ctx , width_val );
281282 JS_FreeValue (ctx , height_val );
282283 return dims ;
283284}
284285
285- static Rectangle rectangle_from_js (JSValue obj ) {
286+ __attribute__(( unused )) static Rectangle rectangle_from_js (JSValue obj ) {
286287 Rectangle rect = {0 , 0 , 0 , 0 }; // Default values
287-
288+
288289 JSValue x_val = JS_GetPropertyStr (ctx , obj , "x" );
289290 JSValue y_val = JS_GetPropertyStr (ctx , obj , "y" );
290291 JSValue width_val = JS_GetPropertyStr (ctx , obj , "width" );
291292 JSValue height_val = JS_GetPropertyStr (ctx , obj , "height" );
292-
293+
293294 JS_ToInt32 (ctx , & rect .x , x_val );
294295 JS_ToInt32 (ctx , & rect .y , y_val );
295296 JS_ToInt32 (ctx , & rect .width , width_val );
296297 JS_ToInt32 (ctx , & rect .height , height_val );
297-
298+
298299 JS_FreeValue (ctx , x_val );
299300 JS_FreeValue (ctx , y_val );
300301 JS_FreeValue (ctx , width_val );
@@ -349,6 +350,57 @@ static SfxParams sfx_params_from_js(JSValue obj) {
349350 JSValue lpfResonance_val = JS_GetPropertyStr (ctx , obj , "lpfResonance" );
350351 JSValue hpfCutoff_val = JS_GetPropertyStr (ctx , obj , "hpfCutoff" );
351352 JSValue hpfCutoffSweep_val = JS_GetPropertyStr (ctx , obj , "hpfCutoffSweep" );
353+
354+ JS_ToUint32 (ctx , & params .randSeed , randSeed_val );
355+ JS_ToInt32 (ctx , & params .waveType , waveType_val );
356+ JS_ToFloat64 (ctx , (double * )& params .attackTime , attackTime_val );
357+ JS_ToFloat64 (ctx , (double * )& params .sustainTime , sustainTime_val );
358+ JS_ToFloat64 (ctx , (double * )& params .sustainPunch , sustainPunch_val );
359+ JS_ToFloat64 (ctx , (double * )& params .decayTime , decayTime_val );
360+ JS_ToFloat64 (ctx , (double * )& params .startFrequency , startFrequency_val );
361+ JS_ToFloat64 (ctx , (double * )& params .minFrequency , minFrequency_val );
362+ JS_ToFloat64 (ctx , (double * )& params .slide , slide_val );
363+ JS_ToFloat64 (ctx , (double * )& params .deltaSlide , deltaSlide_val );
364+ JS_ToFloat64 (ctx , (double * )& params .vibratoDepth , vibratoDepth_val );
365+ JS_ToFloat64 (ctx , (double * )& params .vibratoSpeed , vibratoSpeed_val );
366+ JS_ToFloat64 (ctx , (double * )& params .changeAmount , changeAmount_val );
367+ JS_ToFloat64 (ctx , (double * )& params .changeSpeed , changeSpeed_val );
368+ JS_ToFloat64 (ctx , (double * )& params .squareDuty , squareDuty_val );
369+ JS_ToFloat64 (ctx , (double * )& params .dutySweep , dutySweep_val );
370+ JS_ToFloat64 (ctx , (double * )& params .repeatSpeed , repeatSpeed_val );
371+ JS_ToFloat64 (ctx , (double * )& params .phaserOffset , phaserOffset_val );
372+ JS_ToFloat64 (ctx , (double * )& params .phaserSweep , phaserSweep_val );
373+ JS_ToFloat64 (ctx , (double * )& params .lpfCutoff , lpfCutoff_val );
374+ JS_ToFloat64 (ctx , (double * )& params .lpfCutoffSweep , lpfCutoffSweep_val );
375+ JS_ToFloat64 (ctx , (double * )& params .lpfResonance , lpfResonance_val );
376+ JS_ToFloat64 (ctx , (double * )& params .hpfCutoff , hpfCutoff_val );
377+ JS_ToFloat64 (ctx , (double * )& params .hpfCutoffSweep , hpfCutoffSweep_val );
378+
379+ JS_FreeValue (ctx , randSeed_val );
380+ JS_FreeValue (ctx , waveType_val );
381+ JS_FreeValue (ctx , attackTime_val );
382+ JS_FreeValue (ctx , sustainTime_val );
383+ JS_FreeValue (ctx , sustainPunch_val );
384+ JS_FreeValue (ctx , decayTime_val );
385+ JS_FreeValue (ctx , startFrequency_val );
386+ JS_FreeValue (ctx , minFrequency_val );
387+ JS_FreeValue (ctx , slide_val );
388+ JS_FreeValue (ctx , deltaSlide_val );
389+ JS_FreeValue (ctx , vibratoDepth_val );
390+ JS_FreeValue (ctx , vibratoSpeed_val );
391+ JS_FreeValue (ctx , changeAmount_val );
392+ JS_FreeValue (ctx , changeSpeed_val );
393+ JS_FreeValue (ctx , squareDuty_val );
394+ JS_FreeValue (ctx , dutySweep_val );
395+ JS_FreeValue (ctx , repeatSpeed_val );
396+ JS_FreeValue (ctx , phaserOffset_val );
397+ JS_FreeValue (ctx , phaserSweep_val );
398+ JS_FreeValue (ctx , lpfCutoff_val );
399+ JS_FreeValue (ctx , lpfCutoffSweep_val );
400+ JS_FreeValue (ctx , lpfResonance_val );
401+ JS_FreeValue (ctx , hpfCutoff_val );
402+ JS_FreeValue (ctx , hpfCutoffSweep_val );
403+
352404 return params ;
353405}
354406
0 commit comments