@@ -285,6 +285,11 @@ def engine_is_v8(engine):
285285 return match_engine_executable (engine , 'd8' ) or match_engine_executable (engine , 'v8' )
286286
287287
288+ def engine_is_spidermonkey (engine ):
289+ assert type (engine ) is list
290+ return match_engine_executable (engine , 'spidermonkey' )
291+
292+
288293def engine_is_deno (engine ):
289294 assert type (engine ) is list
290295 return match_engine_executable (engine , 'deno' )
@@ -311,6 +316,10 @@ def get_v8():
311316 return get_engine (engine_is_v8 )
312317
313318
319+ def get_spidermonkey ():
320+ return get_engine (engine_is_spidermonkey )
321+
322+
314323def get_bun ():
315324 return get_engine (engine_is_bun )
316325
@@ -499,6 +508,12 @@ def require_wasm64(self):
499508 if self .try_require_node_version (24 ):
500509 return
501510
511+ spidermonkey = get_spidermonkey ()
512+ if spidermonkey :
513+ self .cflags .append ('-sENVIRONMENT=shell' )
514+ self .require_engine (spidermonkey )
515+ return
516+
502517 v8 = get_v8 ()
503518 if v8 :
504519 self .cflags .append ('-sENVIRONMENT=shell' )
@@ -510,7 +525,7 @@ def require_wasm64(self):
510525 def try_require_node_version (self , major , minor = 0 , revision = 0 ):
511526 nodejs = get_nodejs ()
512527 if not nodejs :
513- self . skipTest ( 'Test requires nodejs to run' )
528+ return False
514529 version = shared .get_node_version (nodejs )
515530 if version < (major , minor , revision ):
516531 return False
0 commit comments