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