[JSInterp] Use , for join() with null/undefined argument

Eg: [1,2,3].join(null) -> '1,2,3'
This commit is contained in:
dirkf 2025-03-25 22:30:08 +00:00
parent b982d77d0b
commit 1bc45b8b6c

View File

@ -1208,7 +1208,8 @@ class JSInterpreter(object):
elif member == 'join':
assertion(isinstance(obj, list), 'must be applied on a list')
assertion(len(argvals) <= 1, 'takes at most one argument')
return (',' if len(argvals) == 0 else argvals[0]).join(
return (',' if len(argvals) == 0 or argvals[0] in (None, JS_Undefined)
else argvals[0]).join(
('' if x in (None, JS_Undefined) else _js_toString(x))
for x in obj)
elif member == 'reverse':