def list_comprehension(v):
return [x * v for x in range(3)]
t = traceur.StackTrace(list_comprehension)
t.call(10)
t.do_report()
# === Result: ===
===== list_comprehension ====
0: ([], None)
1 LOAD_CLOSURE 0 v
0: ([<cell at 0x7fbb37144ad8: int object at 0x975210>], None)
5 BUILD_TUPLE 1 1
0: ([(<cell at 0x7fbb37144ad8: int object at 0x975210>,)], None)
9 LOAD_CONST 1 <code object <listcomp> at 0x7fbb37043f40, file "test.py", line 62>
0: ([<code object <listcomp> at 0x7fbb37043f40, file "test.py", line 62>, (<cell at 0x7fbb37144ad8: int object at 0x975210>,)], None)
13 LOAD_CONST 2 list_comprehension.<locals>.<listcomp>
0: (['list_comprehension.<locals>.<listcomp>', <code object <listcomp> at 0x7fbb37043f40, file "test.py", line 62>, (<cell at 0x7fbb37144ad8: int object at 0x975210>,)], None)
17 MAKE_CLOSURE 0 0
0: ([<function list_comprehension.<locals>.<listcomp> at 0x7fbb370a63f0>], None)
21 LOAD_GLOBAL 0 range
0: ([<class 'range'>, <function list_comprehension.<locals>.<listcomp> at 0x7fbb370a63f0>], None)
25 LOAD_CONST 3 3
0: ([3, <class 'range'>, <function list_comprehension.<locals>.<listcomp> at 0x7fbb370a63f0>], None)
29 CALL_FUNCTION 1 1
0: ([range(0, 3), <function list_comprehension.<locals>.<listcomp> at 0x7fbb370a63f0>], None)
33 GET_ITER None None
0: ([<range_iterator object at 0x7fbb36f3c4c0>, <function list_comprehension.<locals>.<listcomp> at 0x7fbb370a63f0>], None)
35 CALL_FUNCTION 1 1
0: ([[0, 10, 20]], None)
39 RETURN_VALUE None None
===== <listcomp> ====
0: ([], None)
1 BUILD_LIST 0 0
0: ([[]], None)
5 LOAD_FAST 0 .0
0: ([<range_iterator object at 0x7fbb36f3c460>, []], None)
1: ([<range_iterator object at 0x7fbb36f3c7c0>, [0]], None)
2: ([<range_iterator object at 0x7fbb36f3ca60>, [0, 10]], None)
3: ([<range_iterator object at 0x7fbb36f3cd00>, [0, 10, 20]], None)
9 FOR_ITER 22 34
0: ([0, <range_iterator object at 0x7fbb36f3c580>, []], None)
1: ([1, <range_iterator object at 0x7fbb36f3c820>, [0]], None)
2: ([2, <range_iterator object at 0x7fbb36f3cac0>, [0, 10]], None)
13 STORE_FAST 1 x
0: ([<range_iterator object at 0x7fbb36f3c5e0>, []], None)
1: ([<range_iterator object at 0x7fbb36f3c880>, [0]], None)
2: ([<range_iterator object at 0x7fbb36f3cb20>, [0, 10]], None)
17 LOAD_FAST 1 x
0: ([0, <range_iterator object at 0x7fbb36f3c640>, []], None)
1: ([1, <range_iterator object at 0x7fbb36f3c8e0>, [0]], None)
2: ([2, <range_iterator object at 0x7fbb36f3cb80>, [0, 10]], None)
21 LOAD_DEREF 0 v
0: ([10, 0, <range_iterator object at 0x7fbb36f3c6a0>, []], None)
1: ([10, 1, <range_iterator object at 0x7fbb36f3c940>, [0]], None)
2: ([10, 2, <range_iterator object at 0x7fbb36f3cbe0>, [0, 10]], None)
25 BINARY_MULTIPLY None None
0: ([0, <range_iterator object at 0x7fbb36f3c700>, []], None)
1: ([10, <range_iterator object at 0x7fbb36f3c9a0>, [0]], None)
2: ([20, <range_iterator object at 0x7fbb36f3cc40>, [0, 10]], None)
27 LIST_APPEND 2 2
0: ([<range_iterator object at 0x7fbb36f3c760>, [0]], None)
1: ([<range_iterator object at 0x7fbb36f3ca00>, [0, 10]], None)
2: ([<range_iterator object at 0x7fbb36f3cca0>, [0, 10, 20]], None)
31 JUMP_ABSOLUTE 8 8
0: ([[0, 10, 20]], None)
35 RETURN_VALUE None None