diff options
| author | Damien George <damien@micropython.org> | 2024-06-17 23:32:09 +1000 |
|---|---|---|
| committer | Damien George <damien@micropython.org> | 2024-06-18 22:14:34 +1000 |
| commit | a053e639147d97c4a306ab272c12d9520a80e805 (patch) | |
| tree | 1dc4858902765a99b00078625e874fcc34a979a3 /tests | |
| parent | 2b0e64beaf5998bae794d2d67827f70a8bf0fe74 (diff) | |
webassembly/objjsproxy: Implement proxying of JS iterable protocol.
This allows Python to iterate over JavaScript objects that provide
Symbol.iterator.
Signed-off-by: Damien George <damien@micropython.org>
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/ports/webassembly/js_proxy_iterator.mjs | 14 | ||||
| -rw-r--r-- | tests/ports/webassembly/js_proxy_iterator.mjs.exp | 4 |
2 files changed, 18 insertions, 0 deletions
diff --git a/tests/ports/webassembly/js_proxy_iterator.mjs b/tests/ports/webassembly/js_proxy_iterator.mjs new file mode 100644 index 000000000..34b54b483 --- /dev/null +++ b/tests/ports/webassembly/js_proxy_iterator.mjs @@ -0,0 +1,14 @@ +// Test accessing JavaScript iterables (objects with Symbol.iterator) from Python. + +const mp = await (await import(process.argv[2])).loadMicroPython(); + +mp.runPython(` +import js + +for v in js.Set.new([1, 2]): + print(v) + +url_search_params = js.URLSearchParams.new("one=1&two=2") +for key in url_search_params.keys(): + print(key, list(url_search_params.getAll(key))) +`); diff --git a/tests/ports/webassembly/js_proxy_iterator.mjs.exp b/tests/ports/webassembly/js_proxy_iterator.mjs.exp new file mode 100644 index 000000000..e8d11286c --- /dev/null +++ b/tests/ports/webassembly/js_proxy_iterator.mjs.exp @@ -0,0 +1,4 @@ +1 +2 +one ['1'] +two ['2'] |
