mirror of
https://github.com/micropython/micropython.git
synced 2026-01-07 04:30:24 +01:00
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.
This commit is contained in:
19
tests/micropython/viper_globals.py
Normal file
19
tests/micropython/viper_globals.py
Normal file
@@ -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']())
|
||||
2
tests/micropython/viper_globals.py.exp
Normal file
2
tests/micropython/viper_globals.py.exp
Normal file
@@ -0,0 +1,2 @@
|
||||
NameError
|
||||
123
|
||||
Reference in New Issue
Block a user