diff options
| author | Damien George <damien.p.george@gmail.com> | 2018-09-15 22:37:07 +1000 |
|---|---|---|
| committer | Damien George <damien.p.george@gmail.com> | 2018-09-15 22:39:27 +1000 |
| commit | 93d71c5436488d52d47d165dd020217415e79a64 (patch) | |
| tree | f00d9f11c16d8ea52d3574603a834bf912cddfab /tests/micropython/viper_globals.py | |
| parent | f12e039c2bb805364f55b1fb81b92c1b03c9104a (diff) | |
py/emitnative: Make viper funcs run with their correct globals context.
Viper functions will now capture the globals at the point they were defined
and use these globals when executing.
Diffstat (limited to 'tests/micropython/viper_globals.py')
| -rw-r--r-- | tests/micropython/viper_globals.py | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/micropython/viper_globals.py b/tests/micropython/viper_globals.py new file mode 100644 index 000000000..9c68dc3da --- /dev/null +++ b/tests/micropython/viper_globals.py @@ -0,0 +1,19 @@ +# test that viper functions capture their globals context + +gl = {} + +exec(""" +@micropython.viper +def f(): + return x +""", gl) + +# x is not yet in the globals, f should not see it +try: + print(gl['f']()) +except NameError: + print('NameError') + +# x is in globals, f should now see it +gl['x'] = 123 +print(gl['f']()) |
