We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Passing python dict into a js function
Hi, I just noticed that we now (v0.17.0) convert python dict to a `Map` in js, and it break my previous code.

I have 3 questions:
1. What would be the easiest way to send a dictionary in Python to Js so it will become a regular object. 
2. What is the reason to choose converting `dict` to `Map`? I find it's bit inconvenient if we get a Map instead of an object by default. I mean, `Object`/`{}` is obviously more commonly used than `Map` in JS, wouldn't it be a better default type for converting `dict` in Python?
3. Previously, if we import js function (e.g. `postMessage`) into Python, then send a python dictionary( `js.postMessage({'data': 123})`, it automatically convert the arguments into js object, but now it complains that `JsException: DataCloneError: Failed to execute 'postMessage' on 'DedicatedWorkerGlobalScope': [object Object] could not be cloned.`. 




--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `src/py/_pyodide/_core_docs.py`
Content:
```
1 # type: ignore
2 
3 from typing import Any, Callable
4 
5 # All docstrings for public `core` APIs should be extracted from here. We use
6 # the utilities in `docstring.py` and `docstring.c` to format them
7 # appropriately.
8 
9 # Sphinx uses __name__ to determine the paths and such. It looks better for it
10 # to refer to e.g., `pyodide.JsProxy` than `_pyodide._core.JsProxy`.
11 _save_name = __name__
12 __name__ = "pyodide"
13 try:
14     # From jsproxy.c
15 
16     class JsException(Exception):
17         """
18         A wrapper around a Javascript Error to allow it to be thrown in Python.
19         See :ref:`type-translations-errors`.
20         """
21 
22         @property
23         def js_error(self):
24             """The original Javascript error"""
25 
26     class ConversionError(Exception):
27         """An error thrown when conversion between Javascript and Python fails."""
28 
29     class JsProxy:
30         """A proxy to make a Javascript object behave like a Python object
31 
32         For more information see :ref:`type-translations` documentation.
33         """
34 
35         def __init__(self):
36             """ """
37 
38         def object_entries(self) -> "JsProxy":
39             "The Javascript API ``Object.entries(object)``"
40 
41         def object_keys(self) -> "JsProxy":
42             "The Javascript API ``Object.keys(object)``"
43 
44         def object_values(self) -> "JsProxy":
45             "The Javascript API ``Object.values(object)``"
46 
47         def new(self, *args, **kwargs) -> "JsProxy":
48             """Construct a new instance of the Javascript object"""
49 
50         def to_py(self, *, depth: int = -1) -> Any:
51             """Convert the :class:`JsProxy` to a native Python object as best as
52             possible.
53 
54             By default does a deep conversion, if a shallow conversion is
55             desired, you can use ``proxy.to_py(depth=1)``. See
56             :ref:`type-translations-jsproxy-to-py` for more information.
57             """
58             pass
59 
60         def then(self, onfulfilled: Callable, onrejected: Callable) -> "Promise":
61             """The ``Promise.then`` API, wrapped to manage the lifetimes of the
62             handlers.
63 
64             Present only if the wrapped Javascript object has a "then" method.
65             Pyodide will automatically release the references to the handlers
66             when the promise resolves.
67             """
68 
69         def catch(self, onrejected: Callable) -> "Promise":
70             """The ``Promise.catch`` API, wrapped to manage the lifetimes of the
71             handler.
72 
73             Present only if the wrapped Javascript object has a "then" method.
74             Pyodide will automatically release the references to the handler
75             when the promise resolves.
76             """
77 
78         def finally_(self, onfinally: Callable) -> "Promise":
79             """The ``Promise.finally`` API, wrapped to manage the lifetimes of
80             the handler.
81 
82             Present only if the wrapped Javascript object has a "then" method.
83             Pyodide will automatically release the references to the handler
84             when the promise resolves. Note the trailing underscore in the name;
85             this is needed because ``finally`` is a reserved keyword in Python.
86             """
87 
88         # There are no types for buffers:
89         # https://github.com/python/typing/issues/593
90         # https://bugs.python.org/issue27501
91         # This is just for docs so lets just make something up?
92 
93         def assign(self, rhs: "ReadBuffer"):
94             """Assign from a Python buffer into the Javascript buffer.
95 
96             Present only if the wrapped Javascript object is an ArrayBuffer or
97             an ArrayBuffer view.
98             """
99 
100         def assign_to(self, to: "ReadWriteBuffer"):
101             """Assign to a Python buffer from the Javascript buffer.
102 
103             Present only if the wrapped Javascript object is an ArrayBuffer or
104             an ArrayBuffer view.
105             """
106 
107     # from pyproxy.c
108 
109     def create_once_callable(obj: Callable) -> JsProxy:
110         """Wrap a Python callable in a Javascript function that can be called once.
111 
112         After being called the proxy will decrement the reference count
113         of the Callable. The Javascript function also has a ``destroy`` API that
114         can be used to release the proxy without calling it.
115         """
116         return obj
117 
118     def create_proxy(obj: Any) -> JsProxy:
119         """Create a ``JsProxy`` of a ``PyProxy``.
120 
121         This allows explicit control over the lifetime of the ``PyProxy`` from
122         Python: call the ``destroy`` API when done.
123         """
124         return obj
125 
126     # from python2js
127 
128     def to_js(
129         obj: Any,
130         *,
131         depth: int = -1,
132         pyproxies: JsProxy = None,
133         create_pyproxies: bool = True
134     ) -> JsProxy:
135         """Convert the object to Javascript.
136 
137         This is similar to :any:`PyProxy.toJs`, but for use from Python. If the
138         object would be implicitly translated to Javascript, it will be returned
139         unchanged. If the object cannot be converted into Javascript, this
140         method will return a :any:`JsProxy` of a :any:`PyProxy`, as if you had
141         used :any:`pyodide.create_proxy`.
142 
143         See :ref:`type-translations-pyproxy-to-js` for more information.
144 
145         Parameters
146         ----------
147         obj : Any
148             The Python object to convert
149 
150         depth : int, default=-1
151             The maximum depth to do the conversion. Negative numbers are treated
152             as infinite. Set this to 1 to do a shallow conversion.
153 
154         pyproxies: JsProxy, default = None
155             Should be a Javascript ``Array``. If provided, any ``PyProxies`` generated
156             will be stored here. You can later use :any:`destroy_proxies` if you want
157             to destroy the proxies from Python (or from Javascript you can just iterate
158             over the ``Array`` and destroy the proxies).
159 
160         create_pyproxies: bool, default=True
161             If you set this to False, :any:`to_js` will raise an error
162 
163         """
164         return obj
165 
166     def destroy_proxies(pyproxies: JsProxy):
167         """Destroy all PyProxies in a Javascript array.
168 
169         pyproxies must be a JsProxy of type PyProxy[]. Intended for use with the
170         arrays created from the "pyproxies" argument of :any:`toJs` and
171         :any:`to_js`. This method is necessary because indexing the Array from
172         Python automatically unwraps the PyProxy into the wrapped Python object.
173         """
174         pass
175 
176 
177 finally:
178     __name__ = _save_name
179     del _save_name
180
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/src/py/_pyodide/_core_docs.py b/src/py/_pyodide/_core_docs.py
--- a/src/py/_pyodide/_core_docs.py
+++ b/src/py/_pyodide/_core_docs.py
@@ -1,6 +1,6 @@
 # type: ignore
 
-from typing import Any, Callable
+from typing import Any, Callable, Iterable
 
 # All docstrings for public `core` APIs should be extracted from here. We use
 # the utilities in `docstring.py` and `docstring.c` to format them
@@ -130,7 +130,8 @@
         *,
         depth: int = -1,
         pyproxies: JsProxy = None,
-        create_pyproxies: bool = True
+        create_pyproxies: bool = True,
+        dict_converter: Callable[[Iterable[JsProxy]], JsProxy] = None,
     ) -> JsProxy:
         """Convert the object to Javascript.
 
@@ -160,6 +161,15 @@
         create_pyproxies: bool, default=True
             If you set this to False, :any:`to_js` will raise an error
 
+        dict_converter: Callable[[Iterable[JsProxy]], JsProxy], defauilt = None
+            This converter if provided recieves a (Javascript) iterable of
+            (Javascript) pairs [key, value]. It is expected to return the
+            desired result of the dict conversion. Some suggested values for
+            this argument:
+
+                js.Map.new -- similar to the default behavior
+                js.Array.from -- convert to an array of entries
+                js.Object.fromEntries -- convert to a Javascript object
         """
         return obj

{"golden_diff": "diff --git a/src/py/_pyodide/_core_docs.py b/src/py/_pyodide/_core_docs.py\n--- a/src/py/_pyodide/_core_docs.py\n+++ b/src/py/_pyodide/_core_docs.py\n@@ -1,6 +1,6 @@\n # type: ignore\n \n-from typing import Any, Callable\n+from typing import Any, Callable, Iterable\n \n # All docstrings for public `core` APIs should be extracted from here. We use\n # the utilities in `docstring.py` and `docstring.c` to format them\n@@ -130,7 +130,8 @@\n         *,\n         depth: int = -1,\n         pyproxies: JsProxy = None,\n-        create_pyproxies: bool = True\n+        create_pyproxies: bool = True,\n+        dict_converter: Callable[[Iterable[JsProxy]], JsProxy] = None,\n     ) -> JsProxy:\n         \"\"\"Convert the object to Javascript.\n \n@@ -160,6 +161,15 @@\n         create_pyproxies: bool, default=True\n             If you set this to False, :any:`to_js` will raise an error\n \n+        dict_converter: Callable[[Iterable[JsProxy]], JsProxy], defauilt = None\n+            This converter if provided recieves a (Javascript) iterable of\n+            (Javascript) pairs [key, value]. It is expected to return the\n+            desired result of the dict conversion. Some suggested values for\n+            this argument:\n+\n+                js.Map.new -- similar to the default behavior\n+                js.Array.from -- convert to an array of entries\n+                js.Object.fromEntries -- convert to a Javascript object\n         \"\"\"\n         return obj\n", "issue": "Passing python dict into a js function\nHi, I just noticed that we now (v0.17.0) convert python dict to a `Map` in js, and it break my previous code.\r\n\r\nI have 3 questions:\r\n1. What would be the easiest way to send a dictionary in Python to Js so it will become a regular object. \r\n2. What is the reason to choose converting `dict` to `Map`? I find it's bit inconvenient if we get a Map instead of an object by default. I mean, `Object`/`{}` is obviously more commonly used than `Map` in JS, wouldn't it be a better default type for converting `dict` in Python?\r\n3. Previously, if we import js function (e.g. `postMessage`) into Python, then send a python dictionary( `js.postMessage({'data': 123})`, it automatically convert the arguments into js object, but now it complains that `JsException: DataCloneError: Failed to execute 'postMessage' on 'DedicatedWorkerGlobalScope': [object Object] could not be cloned.`. \r\n\r\n\r\n\n", "before_files": [{"content": "# type: ignore\n\nfrom typing import Any, Callable\n\n# All docstrings for public `core` APIs should be extracted from here. We use\n# the utilities in `docstring.py` and `docstring.c` to format them\n# appropriately.\n\n# Sphinx uses __name__ to determine the paths and such. It looks better for it\n# to refer to e.g., `pyodide.JsProxy` than `_pyodide._core.JsProxy`.\n_save_name = __name__\n__name__ = \"pyodide\"\ntry:\n    # From jsproxy.c\n\n    class JsException(Exception):\n        \"\"\"\n        A wrapper around a Javascript Error to allow it to be thrown in Python.\n        See :ref:`type-translations-errors`.\n        \"\"\"\n\n        @property\n        def js_error(self):\n            \"\"\"The original Javascript error\"\"\"\n\n    class ConversionError(Exception):\n        \"\"\"An error thrown when conversion between Javascript and Python fails.\"\"\"\n\n    class JsProxy:\n        \"\"\"A proxy to make a Javascript object behave like a Python object\n\n        For more information see :ref:`type-translations` documentation.\n        \"\"\"\n\n        def __init__(self):\n            \"\"\" \"\"\"\n\n        def object_entries(self) -> \"JsProxy\":\n            \"The Javascript API ``Object.entries(object)``\"\n\n        def object_keys(self) -> \"JsProxy\":\n            \"The Javascript API ``Object.keys(object)``\"\n\n        def object_values(self) -> \"JsProxy\":\n            \"The Javascript API ``Object.values(object)``\"\n\n        def new(self, *args, **kwargs) -> \"JsProxy\":\n            \"\"\"Construct a new instance of the Javascript object\"\"\"\n\n        def to_py(self, *, depth: int = -1) -> Any:\n            \"\"\"Convert the :class:`JsProxy` to a native Python object as best as\n            possible.\n\n            By default does a deep conversion, if a shallow conversion is\n            desired, you can use ``proxy.to_py(depth=1)``. See\n            :ref:`type-translations-jsproxy-to-py` for more information.\n            \"\"\"\n            pass\n\n        def then(self, onfulfilled: Callable, onrejected: Callable) -> \"Promise\":\n            \"\"\"The ``Promise.then`` API, wrapped to manage the lifetimes of the\n            handlers.\n\n            Present only if the wrapped Javascript object has a \"then\" method.\n            Pyodide will automatically release the references to the handlers\n            when the promise resolves.\n            \"\"\"\n\n        def catch(self, onrejected: Callable) -> \"Promise\":\n            \"\"\"The ``Promise.catch`` API, wrapped to manage the lifetimes of the\n            handler.\n\n            Present only if the wrapped Javascript object has a \"then\" method.\n            Pyodide will automatically release the references to the handler\n            when the promise resolves.\n            \"\"\"\n\n        def finally_(self, onfinally: Callable) -> \"Promise\":\n            \"\"\"The ``Promise.finally`` API, wrapped to manage the lifetimes of\n            the handler.\n\n            Present only if the wrapped Javascript object has a \"then\" method.\n            Pyodide will automatically release the references to the handler\n            when the promise resolves. Note the trailing underscore in the name;\n            this is needed because ``finally`` is a reserved keyword in Python.\n            \"\"\"\n\n        # There are no types for buffers:\n        # https://github.com/python/typing/issues/593\n        # https://bugs.python.org/issue27501\n        # This is just for docs so lets just make something up?\n\n        def assign(self, rhs: \"ReadBuffer\"):\n            \"\"\"Assign from a Python buffer into the Javascript buffer.\n\n            Present only if the wrapped Javascript object is an ArrayBuffer or\n            an ArrayBuffer view.\n            \"\"\"\n\n        def assign_to(self, to: \"ReadWriteBuffer\"):\n            \"\"\"Assign to a Python buffer from the Javascript buffer.\n\n            Present only if the wrapped Javascript object is an ArrayBuffer or\n            an ArrayBuffer view.\n            \"\"\"\n\n    # from pyproxy.c\n\n    def create_once_callable(obj: Callable) -> JsProxy:\n        \"\"\"Wrap a Python callable in a Javascript function that can be called once.\n\n        After being called the proxy will decrement the reference count\n        of the Callable. The Javascript function also has a ``destroy`` API that\n        can be used to release the proxy without calling it.\n        \"\"\"\n        return obj\n\n    def create_proxy(obj: Any) -> JsProxy:\n        \"\"\"Create a ``JsProxy`` of a ``PyProxy``.\n\n        This allows explicit control over the lifetime of the ``PyProxy`` from\n        Python: call the ``destroy`` API when done.\n        \"\"\"\n        return obj\n\n    # from python2js\n\n    def to_js(\n        obj: Any,\n        *,\n        depth: int = -1,\n        pyproxies: JsProxy = None,\n        create_pyproxies: bool = True\n    ) -> JsProxy:\n        \"\"\"Convert the object to Javascript.\n\n        This is similar to :any:`PyProxy.toJs`, but for use from Python. If the\n        object would be implicitly translated to Javascript, it will be returned\n        unchanged. If the object cannot be converted into Javascript, this\n        method will return a :any:`JsProxy` of a :any:`PyProxy`, as if you had\n        used :any:`pyodide.create_proxy`.\n\n        See :ref:`type-translations-pyproxy-to-js` for more information.\n\n        Parameters\n        ----------\n        obj : Any\n            The Python object to convert\n\n        depth : int, default=-1\n            The maximum depth to do the conversion. Negative numbers are treated\n            as infinite. Set this to 1 to do a shallow conversion.\n\n        pyproxies: JsProxy, default = None\n            Should be a Javascript ``Array``. If provided, any ``PyProxies`` generated\n            will be stored here. You can later use :any:`destroy_proxies` if you want\n            to destroy the proxies from Python (or from Javascript you can just iterate\n            over the ``Array`` and destroy the proxies).\n\n        create_pyproxies: bool, default=True\n            If you set this to False, :any:`to_js` will raise an error\n\n        \"\"\"\n        return obj\n\n    def destroy_proxies(pyproxies: JsProxy):\n        \"\"\"Destroy all PyProxies in a Javascript array.\n\n        pyproxies must be a JsProxy of type PyProxy[]. Intended for use with the\n        arrays created from the \"pyproxies\" argument of :any:`toJs` and\n        :any:`to_js`. This method is necessary because indexing the Array from\n        Python automatically unwraps the PyProxy into the wrapped Python object.\n        \"\"\"\n        pass\n\n\nfinally:\n    __name__ = _save_name\n    del _save_name\n", "path": "src/py/_pyodide/_core_docs.py"}], "after_files": [{"content": "# type: ignore\n\nfrom typing import Any, Callable, Iterable\n\n# All docstrings for public `core` APIs should be extracted from here. We use\n# the utilities in `docstring.py` and `docstring.c` to format them\n# appropriately.\n\n# Sphinx uses __name__ to determine the paths and such. It looks better for it\n# to refer to e.g., `pyodide.JsProxy` than `_pyodide._core.JsProxy`.\n_save_name = __name__\n__name__ = \"pyodide\"\ntry:\n    # From jsproxy.c\n\n    class JsException(Exception):\n        \"\"\"\n        A wrapper around a Javascript Error to allow it to be thrown in Python.\n        See :ref:`type-translations-errors`.\n        \"\"\"\n\n        @property\n        def js_error(self):\n            \"\"\"The original Javascript error\"\"\"\n\n    class ConversionError(Exception):\n        \"\"\"An error thrown when conversion between Javascript and Python fails.\"\"\"\n\n    class JsProxy:\n        \"\"\"A proxy to make a Javascript object behave like a Python object\n\n        For more information see :ref:`type-translations` documentation.\n        \"\"\"\n\n        def __init__(self):\n            \"\"\" \"\"\"\n\n        def object_entries(self) -> \"JsProxy\":\n            \"The Javascript API ``Object.entries(object)``\"\n\n        def object_keys(self) -> \"JsProxy\":\n            \"The Javascript API ``Object.keys(object)``\"\n\n        def object_values(self) -> \"JsProxy\":\n            \"The Javascript API ``Object.values(object)``\"\n\n        def new(self, *args, **kwargs) -> \"JsProxy\":\n            \"\"\"Construct a new instance of the Javascript object\"\"\"\n\n        def to_py(self, *, depth: int = -1) -> Any:\n            \"\"\"Convert the :class:`JsProxy` to a native Python object as best as\n            possible.\n\n            By default does a deep conversion, if a shallow conversion is\n            desired, you can use ``proxy.to_py(depth=1)``. See\n            :ref:`type-translations-jsproxy-to-py` for more information.\n            \"\"\"\n            pass\n\n        def then(self, onfulfilled: Callable, onrejected: Callable) -> \"Promise\":\n            \"\"\"The ``Promise.then`` API, wrapped to manage the lifetimes of the\n            handlers.\n\n            Present only if the wrapped Javascript object has a \"then\" method.\n            Pyodide will automatically release the references to the handlers\n            when the promise resolves.\n            \"\"\"\n\n        def catch(self, onrejected: Callable) -> \"Promise\":\n            \"\"\"The ``Promise.catch`` API, wrapped to manage the lifetimes of the\n            handler.\n\n            Present only if the wrapped Javascript object has a \"then\" method.\n            Pyodide will automatically release the references to the handler\n            when the promise resolves.\n            \"\"\"\n\n        def finally_(self, onfinally: Callable) -> \"Promise\":\n            \"\"\"The ``Promise.finally`` API, wrapped to manage the lifetimes of\n            the handler.\n\n            Present only if the wrapped Javascript object has a \"then\" method.\n            Pyodide will automatically release the references to the handler\n            when the promise resolves. Note the trailing underscore in the name;\n            this is needed because ``finally`` is a reserved keyword in Python.\n            \"\"\"\n\n        # There are no types for buffers:\n        # https://github.com/python/typing/issues/593\n        # https://bugs.python.org/issue27501\n        # This is just for docs so lets just make something up?\n\n        def assign(self, rhs: \"ReadBuffer\"):\n            \"\"\"Assign from a Python buffer into the Javascript buffer.\n\n            Present only if the wrapped Javascript object is an ArrayBuffer or\n            an ArrayBuffer view.\n            \"\"\"\n\n        def assign_to(self, to: \"ReadWriteBuffer\"):\n            \"\"\"Assign to a Python buffer from the Javascript buffer.\n\n            Present only if the wrapped Javascript object is an ArrayBuffer or\n            an ArrayBuffer view.\n            \"\"\"\n\n    # from pyproxy.c\n\n    def create_once_callable(obj: Callable) -> JsProxy:\n        \"\"\"Wrap a Python callable in a Javascript function that can be called once.\n\n        After being called the proxy will decrement the reference count\n        of the Callable. The Javascript function also has a ``destroy`` API that\n        can be used to release the proxy without calling it.\n        \"\"\"\n        return obj\n\n    def create_proxy(obj: Any) -> JsProxy:\n        \"\"\"Create a ``JsProxy`` of a ``PyProxy``.\n\n        This allows explicit control over the lifetime of the ``PyProxy`` from\n        Python: call the ``destroy`` API when done.\n        \"\"\"\n        return obj\n\n    # from python2js\n\n    def to_js(\n        obj: Any,\n        *,\n        depth: int = -1,\n        pyproxies: JsProxy = None,\n        create_pyproxies: bool = True,\n        dict_converter: Callable[[Iterable[JsProxy]], JsProxy] = None,\n    ) -> JsProxy:\n        \"\"\"Convert the object to Javascript.\n\n        This is similar to :any:`PyProxy.toJs`, but for use from Python. If the\n        object would be implicitly translated to Javascript, it will be returned\n        unchanged. If the object cannot be converted into Javascript, this\n        method will return a :any:`JsProxy` of a :any:`PyProxy`, as if you had\n        used :any:`pyodide.create_proxy`.\n\n        See :ref:`type-translations-pyproxy-to-js` for more information.\n\n        Parameters\n        ----------\n        obj : Any\n            The Python object to convert\n\n        depth : int, default=-1\n            The maximum depth to do the conversion. Negative numbers are treated\n            as infinite. Set this to 1 to do a shallow conversion.\n\n        pyproxies: JsProxy, default = None\n            Should be a Javascript ``Array``. If provided, any ``PyProxies`` generated\n            will be stored here. You can later use :any:`destroy_proxies` if you want\n            to destroy the proxies from Python (or from Javascript you can just iterate\n            over the ``Array`` and destroy the proxies).\n\n        create_pyproxies: bool, default=True\n            If you set this to False, :any:`to_js` will raise an error\n\n        dict_converter: Callable[[Iterable[JsProxy]], JsProxy], defauilt = None\n            This converter if provided recieves a (Javascript) iterable of\n            (Javascript) pairs [key, value]. It is expected to return the\n            desired result of the dict conversion. Some suggested values for\n            this argument:\n\n                js.Map.new -- similar to the default behavior\n                js.Array.from -- convert to an array of entries\n                js.Object.fromEntries -- convert to a Javascript object\n        \"\"\"\n        return obj\n\n    def destroy_proxies(pyproxies: JsProxy):\n        \"\"\"Destroy all PyProxies in a Javascript array.\n\n        pyproxies must be a JsProxy of type PyProxy[]. Intended for use with the\n        arrays created from the \"pyproxies\" argument of :any:`toJs` and\n        :any:`to_js`. This method is necessary because indexing the Array from\n        Python automatically unwraps the PyProxy into the wrapped Python object.\n        \"\"\"\n        pass\n\n\nfinally:\n    __name__ = _save_name\n    del _save_name\n", "path": "src/py/_pyodide/_core_docs.py"}]}