\code{()}.)
\indexii{trailing}{comma}
+\section{Evaluation order\label{evalorder}}
+\indexii{evaluation}{order}
+
+Python evaluates expressions from left to right. Notice that while
+evaluating an assignment, the right-hand side is evaluated before
+the left-hand side.
+
+In the following lines, expressions will be evaluated in the
+arithmetic order of their suffixes:
+
+\begin{verbatim}
+expr1, expr2, expr3, expr4
+(expr1, expr2, expr3, expr4)
+{expr1: expr2, expr3: expr4}
+expr1 + expr2 * (expr3 - expr4)
+func(expr1, expr2, *expr3, **expr4)
+expr3, expr4 = expr1, expr2
+\end{verbatim}
\section{Summary\label{summary}}
- sys.exit() inadvertently allowed more than one argument.
An exception will now be raised if more than one argument is used.
+- Changed evaluation order of dictionaries to conform to the general
+ left to right evaluation order rule. Now {f1(): f2()} will evaluate
+ f1 first.
+
Extension modules
-----------------
It wants the stack to look like (value) (dict) (key) */
com_addbyte(c, DUP_TOP);
com_push(c, 1);
- com_node(c, CHILD(n, i+2)); /* value */
- com_addbyte(c, ROT_TWO);
com_node(c, CHILD(n, i)); /* key */
+ com_node(c, CHILD(n, i+2)); /* value */
+ com_addbyte(c, ROT_THREE);
com_addbyte(c, STORE_SUBSCR);
com_pop(c, 3);
}