Issue 999042: Compiler module doesn't handle global statement correctly (original) (raw)

If we don't use the compiler module:

code = 'global x\nx=1' d1={'builtins': {}}; d2={}; exec code in d1, d2 d1, d2 ({'builtins': {}, 'x': 1}, {})

with the compiler module:

code = compiler.compile('global x\nx=1', 'd', 'exec') d1={'builtins': {}}; d2={}; exec code in d1, d2 d1, d2 ({'builtins': {}}, {'x': 1})

global is ignored