Parcourir la source

[eval] fix bad array pop value handling

closes #8075
Simon Krajewski il y a 6 ans
Parent
commit
6124e45ae5
2 fichiers modifiés avec 13 ajouts et 0 suppressions
  1. 1 0
      src/macro/eval/evalArray.ml
  2. 12 0
      tests/unit/src/unit/issues/Issue8075.hx

+ 1 - 0
src/macro/eval/evalArray.ml

@@ -114,6 +114,7 @@ let pop a =
 		vnull
 	else begin
 		let v = get a (a.alength - 1) in
+		unsafe_set a (a.alength - 1) vnull;
 		a.alength <- a.alength - 1;
 		v
 	end

+ 12 - 0
tests/unit/src/unit/issues/Issue8075.hx

@@ -0,0 +1,12 @@
+package unit.issues;
+
+class Issue8075 extends unit.Test {
+	function test() {
+		var expect = #if static 0 #else null #end;
+		var a = [];
+		a.push(1);
+		a.pop();
+		a[2] = 2;
+		eq(expect, a[0]);
+	}
+}