From 240a3759cf131fdee8767871ee68356785ff4f9e Mon Sep 17 00:00:00 2001
From: morpheus65535 <louis_vezina@hotmail.com>
Date: Sun, 17 Jan 2021 20:52:56 -0500
Subject: [PATCH] Partial fix for #1230: js2py issue under Python 3.8+

---
 libs/js2py/utils/injector.py | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

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):