Bläddra i källkod

[js] do not generate block-level TObjectDecl, instead treat the fields as block expressions (closes #3440)

Simon Krajewski 11 år sedan
förälder
incheckning
ee3a9b0efc
2 ändrade filer med 15 tillägg och 0 borttagningar
  1. 2 0
      genjs.ml
  2. 13 0
      tests/unit/issues/Issue3440.hx

+ 2 - 0
genjs.ml

@@ -763,6 +763,8 @@ and gen_block_element ?(after=false) ctx e =
 			| _ -> assert false)
 	| TFunction _ ->
 		gen_block_element ~after ctx (mk (TParenthesis e) e.etype e.epos)
+	| TObjectDecl fl ->
+		List.iter (fun (_,e) -> gen_block_element ~after ctx e) fl
 	| _ ->
 		if not after then newline ctx;
 		gen_expr ctx e;

+ 13 - 0
tests/unit/issues/Issue3440.hx

@@ -0,0 +1,13 @@
+package unit.issues;
+
+class Issue3440 extends Test {
+	function test() {
+		var a = "foo";
+		function sideEffect() {
+			a = "bar";
+			return 0;
+		}
+		{ a:1, b:sideEffect() };
+		eq("bar", a);
+	}
+}