@@ -311,7 +311,7 @@ static JSValue js_quickjsrb_call_global(JSContext *ctx, JSValueConst _this, int
311
311
const char * funcName = JS_ToCString (ctx , func_data [0 ]);
312
312
313
313
VMData * data = JS_GetContextOpaque (ctx );
314
- VALUE r_proc = rb_hash_aref (data -> defined_functions , rb_str_new2 ( funcName ));
314
+ VALUE r_proc = rb_hash_aref (data -> defined_functions , ID2SYM ( rb_intern ( funcName ) ));
315
315
// Shouldn't happen
316
316
if (r_proc == Qnil )
317
317
{
@@ -631,8 +631,11 @@ static VALUE vm_m_defineGlobalFunction(int argc, VALUE *argv, VALUE r_self)
631
631
VMData * data ;
632
632
TypedData_Get_Struct (r_self , VMData , & vm_type , data );
633
633
634
- rb_hash_aset (data -> defined_functions , r_name , r_block );
635
- char * funcName = StringValueCStr (r_name );
634
+ VALUE r_name_sym = rb_funcall (r_name , rb_intern ("to_sym" ), 0 );
635
+
636
+ rb_hash_aset (data -> defined_functions , r_name_sym , r_block );
637
+ VALUE r_name_str = rb_funcall (r_name , rb_intern ("to_s" ), 0 );
638
+ char * funcName = StringValueCStr (r_name_str );
636
639
637
640
JSValueConst ruby_data [2 ];
638
641
ruby_data [0 ] = JS_NewString (data -> context , funcName );
@@ -646,7 +649,7 @@ static VALUE vm_m_defineGlobalFunction(int argc, VALUE *argv, VALUE r_self)
646
649
JS_FreeValue (data -> context , ruby_data [0 ]);
647
650
JS_FreeValue (data -> context , ruby_data [1 ]);
648
651
649
- return rb_funcall ( r_name , rb_intern ( "to_sym" ), 0 ) ;
652
+ return r_name_sym ;
650
653
}
651
654
652
655
static VALUE vm_m_import (int argc , VALUE * argv , VALUE r_self )
0 commit comments