pike.git/
src/
docode.c
Branch:
Tag:
Non-build tags
All tags
No tags
2014-08-14
2014-08-14 17:48:46 by Per Hedbor <ph@opera.com>
68e047dac7dd95e94091dc6065e5e2eadaf56cad (
20
lines) (+
10
/-
10
)
[
Show
|
Annotate
]
Branch:
8.0
Merged redundant comments.
1207:
{ case F_ASSIGN_SELF:
-
/*
a
special
case,
we know
we
can
not
really
optimize.
-
car
:
softcast(
efuncall
(
function
,
args
(
2
)))
+
/*
in
assign
self
we know
this:
+
*
+
*
car
(n)
= lvalue
+
* cdr(n)=
softcast(
apply
(
efun
,
arglist
(
car(n
)
,one more arg
))
)
+
*
+
* The first argument of the arglist is equal to the lvalue.
+
*
+
* We only want to evaluate car(n) once.
*/
-
/* node *args=CAADR(n), *func = CAAAR(n); */
+
if( CDR(n)->token == F_AUTO_MAP_MARKER ) yyerror("[*] is not yet supported here\n"); return emit_ltosval_call_and_assign( CDR(n), CAAAR(n), CDAAR(n) ); case F_ASSIGN:
-
/* if assign self is 1 we know this:
-
car(n) = lvalue
-
cdr(n)= softcast(apply(efun, arglist(car(n),one more arg)))
-
-
We only want to evaluate car(n) once.
-
*/
+
if( CDR(n)->token == F_AUTO_MAP_MARKER ) { int depth = 0;