|
@@ -285,25 +285,31 @@ and gen_expr ctx e =
|
|
match t with
|
|
match t with
|
|
| None ->
|
|
| None ->
|
|
last := true;
|
|
last := true;
|
|
|
|
+ spr ctx "{";
|
|
|
|
+ let bend = open_block ctx in
|
|
|
|
+ newline ctx;
|
|
print ctx "var %s = $e" v;
|
|
print ctx "var %s = $e" v;
|
|
newline ctx;
|
|
newline ctx;
|
|
gen_expr ctx e;
|
|
gen_expr ctx e;
|
|
bend();
|
|
bend();
|
|
newline ctx;
|
|
newline ctx;
|
|
|
|
+ spr ctx "}"
|
|
| Some t ->
|
|
| Some t ->
|
|
- print ctx "var %s = $e" v;
|
|
|
|
- newline ctx;
|
|
|
|
spr ctx "if( js.Boot.__instanceof($e,";
|
|
spr ctx "if( js.Boot.__instanceof($e,";
|
|
gen_value ctx (mk (TType t) (mk_mono()) e.epos);
|
|
gen_value ctx (mk (TType t) (mk_mono()) e.epos);
|
|
- spr ctx ") ) ";
|
|
|
|
|
|
+ spr ctx ") ) {";
|
|
|
|
+ let bend = open_block ctx in
|
|
|
|
+ newline ctx;
|
|
|
|
+ print ctx "var %s = $e" v;
|
|
|
|
+ newline ctx;
|
|
gen_expr ctx e;
|
|
gen_expr ctx e;
|
|
|
|
+ bend();
|
|
newline ctx;
|
|
newline ctx;
|
|
|
|
+ spr ctx "} else "
|
|
) catchs;
|
|
) catchs;
|
|
- if not !last then begin
|
|
|
|
- spr ctx "throw($e)";
|
|
|
|
- bend();
|
|
|
|
- newline ctx;
|
|
|
|
- end;
|
|
|
|
|
|
+ if not !last then spr ctx "throw($e)";
|
|
|
|
+ bend();
|
|
|
|
+ newline ctx;
|
|
spr ctx "}";
|
|
spr ctx "}";
|
|
| TMatch (e,_,cases,def) ->
|
|
| TMatch (e,_,cases,def) ->
|
|
spr ctx "var $e = ";
|
|
spr ctx "var $e = ";
|