Skip to content

Exception stack misses actual throw position #892

@Simn

Description

@Simn
import haxe.Exception;

function f1() {
	throw new Exception("f1");
}

function f2() {
	f1();
}

function main() {
	try {
		f2();
	} catch(e:Exception) {
		for (item in e.stack.asArray()) {
			trace(item);
		}
	}
}

HL:

source/Main.hx:16: FilePos(Method(_Main.$Main_Fields_,f2),source/Main.hx,8,null)
source/Main.hx:16: FilePos(Method(_Main.$Main_Fields_,main),source/Main.hx,13,null)
source/Main.hx:16: FilePos(Method(_Main.$Main_Fields_,main),source/Main.hx,12,null)

All other targets (that I've tried) have the original FilePos(Method(_Main.Main_Fields_,f1),source/Main.hx,4,null) as part of the stack.

I'm also just now seeing the line 12 entry, which seems to leak some internal exception handling mechanism because that's on the try.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions