depyo 1.2.1 → 1.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -95,6 +95,14 @@ function processListAppend() {
|
|
|
95
95
|
let node = new AST.ASTComprehension (value);
|
|
96
96
|
node.line = this.code.Current.LineNo;
|
|
97
97
|
this.dataStack.push(node);
|
|
98
|
+
} else if (list instanceof AST.ASTList) {
|
|
99
|
+
// CPython's "big list" path: when a list literal exceeds the
|
|
100
|
+
// STACK_USE_GUIDELINE and not every element is a compile-time
|
|
101
|
+
// constant, the compiler emits BUILD_LIST 0 + N×LIST_APPEND
|
|
102
|
+
// instead of a single BUILD_LIST N. Mutate the list literal in
|
|
103
|
+
// place; the list reference must remain on top of the data stack
|
|
104
|
+
// for the next LIST_APPEND (or the final STORE_*) to find it.
|
|
105
|
+
list.values.push(value);
|
|
98
106
|
} else {
|
|
99
107
|
let node = new AST.ASTSubscr (list, value);
|
|
100
108
|
node.line = this.code.Current.LineNo;
|