Browse Source

[eval] fix haxe.Log.trace when infos = null (#6922)

Ben Morris 7 years ago
parent
commit
d9bb1b0504

+ 11 - 8
src/macro/eval/evalStdLib.ml

@@ -1358,14 +1358,17 @@ module StdLog = struct
 
 	let trace = vfun2 (fun v infos ->
 		let s = value_string v in
-		let infos = decode_object infos in
-		let file_name = decode_string (object_field infos key_fileName) in
-		let line_number = decode_int (object_field infos key_lineNumber) in
-		let l = match object_field infos key_customParams with
-			| VArray va -> s :: (List.map value_string (EvalArray.to_list va))
-			| _ -> [s]
-		in
-		((get_ctx()).curapi.MacroApi.get_com()).Common.print (Printf.sprintf "%s:%i: %s\n" file_name line_number (String.concat "," l));
+		let s = match infos with
+			| VNull -> Printf.sprintf "%s\n" s
+			| _ ->  let infos = decode_object infos in
+				let file_name = decode_string (object_field infos key_fileName) in
+				let line_number = decode_int (object_field infos key_lineNumber) in
+				let l = match object_field infos key_customParams with
+					| VArray va -> s :: (List.map value_string (EvalArray.to_list va))
+					| _ -> [s]
+				in
+				 (Printf.sprintf "%s:%i: %s\n" file_name line_number (String.concat "," l)) in
+		((get_ctx()).curapi.MacroApi.get_com()).Common.print s;
 		vnull
 	)
 end

+ 5 - 0
tests/misc/projects/Issue6922/Test.hx

@@ -0,0 +1,5 @@
+class Test {
+	static function main() {
+		haxe.Log.trace("test message", null);
+	}
+}

+ 2 - 0
tests/misc/projects/Issue6922/compile.hxml

@@ -0,0 +1,2 @@
+-main Test
+--interp