diff options
-rw-r--r-- | libs/js2py/utils/injector.py | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/libs/js2py/utils/injector.py b/libs/js2py/utils/injector.py index dd714a482..ea236d5e7 100644 --- a/libs/js2py/utils/injector.py +++ b/libs/js2py/utils/injector.py @@ -115,7 +115,16 @@ def append_arguments(code_obj, new_locals): code_obj.co_freevars, code_obj.co_cellvars) # Done modifying codestring - make the code object - return types.CodeType(*args) + if hasattr(code_obj, "replace"): + # Python 3.8+ + return code_obj.replace( + co_argcount=co_argcount + new_locals_len, + co_nlocals=code_obj.co_nlocals + new_locals_len, + co_code=code, + co_names=names, + co_varnames=varnames) + else: + return types.CodeType(*args) def instructions(code_obj): |