circuitpython/tests/micropython/viper_globals.py
Damien George 93d71c5436 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.
2018-09-15 22:39:27 +10:00

20 lines
317 B
Python

# 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']())