-
-
Notifications
You must be signed in to change notification settings - Fork 647
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[PHP] sourcemap broken #10585
Comments
Hej ! |
It's a bug in sourcemap generation for PHP target specifically. |
Hej Aleksandr, I hope you're fine. Because I really use PHP everyday in my production work and once again I'm really thankful for your work on this target, and It's a pain to look at the php generated file to retrieve the hx pos one. Please tell me if I can help if any way (just don't tell me to shut up looool) Have a nice day ! |
I don't think I can get to this any time soon, sorry. |
Hej, I've looked at the .ml sources but I'm lost with all that. static var hFiles : Map<String,String> = [];
public static function getSourcesStack( nativeStack : Array<StackItem> ) : Array<StackItem> {
#if sys
var a = [];
for( stack in nativeStack ){
switch stack {
case FilePos(s, file, line, _) :
if( hFiles[ file ] == null ){
hFiles[ file ] = sys.io.File.getContent( file );
}
var lines = hFiles[ file ].split( "\n" );
var currentLine = lines[ line ];
while( line > 0 ){
line--;
currentLine = lines[ line ].trim();
if( currentLine.startsWith( "#" ) ){
break;
}
}
if( line > 0 ){
var cols = currentLine.substr( 1 ).split( ":" ).map( s->s.trim() );
a.push( FilePos( s, cols[ 0 ], Std.parseInt( cols[ 1 ] ) ) );
}else{
a.push( stack );
}
case _ :
a.push( stack );
}
}
return a;
#else
return nativeStack;
#end
} The thing that I find weird is when you say that "It's a bug in sourcemap generation for PHP target specifically." but in the generated php files, the reported source (I mean the comment which targets the original source file and line) seems to be good. |
Hej,
I've encountered a strange sourcemap break when writing some code. And I even don't know if it occurs on others target or only PHP, but I encountered that on PHP...
I know I use the old (but good)
haxe.web.Dispatch
...@Simn will write that stupid code on stupid plateforms will give stupid result, but I try to xpose it anyway 🤣
Here is my build.hx :
Here is my Main.hx :
And the last Api.hx :
I've taken the sourcemap generated and gave it here (sorry for the long link...), as you can see, the
trace
for example maps right, but thethrow
doesn't. The strange thing occurs when it's done as written in my comments, without that, sourcemap is good :https://sokra.github.io/source-map-visualization/#base64,PD9waHAKLyoqCiAqIEdlbmVyYXRlZCBieSBIYXhlIDQuMy4wLXJjLjErZTRlMGJmZWFkCiAqLwoKdXNlIFxwaHBcX0Jvb3RcSHhBbm9uOwp1c2UgXHBocFxCb290Owp1c2UgXGhheGVcTG9nOwp1c2UgXGhheGVcRXhjZXB0aW9uIGFzIEhheGVFeGNlcHRpb247CgpjbGFzcyBBcGkgewoKCS8qKgoJICogQHBhcmFtIFxDbG9zdXJlICRjYgoJICogCgkgKiBAcmV0dXJuIHZvaWQKCSAqLwoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBmb28gKCRjYikgewoJCSNBcGkuaHg6NjogY2hhcmFjdGVycyAzLTgKCQkoTG9nOjokdHJhY2UpKCJvayIsIG5ldyBfSHhBbm9uX0FwaTAoIkFwaS5oeCIsIDYsICJBcGkiLCAiZm9vIikpOwoJfQoKCS8qKgoJICogQHJldHVybiB2b2lkCgkgKi8KCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCAoKSB7Cgl9CgoJLyoqCgkgKiBAcmV0dXJuIHZvaWQKCSAqLwoJcHVibGljIGZ1bmN0aW9uIGRvRm9vICgpIHsKCQkjQXBpLmh4OjEwOiBjaGFyYWN0ZXJzIDMtMjIKCQlBcGk6OmZvbyhmdW5jdGlvbiAoKSB7CgkJfSk7Cgl9CgoJLyoqCgkgKiBAcmV0dXJuIHZvaWQKCSAqLwoJcHVibGljIGZ1bmN0aW9uIGRvVGVzdEpTdGFjayAoKSB7CgkJI0FwaS5oeDoxNDogY2hhcmFjdGVycyAzLTgKCQl0aHJvdyBIYXhlRXhjZXB0aW9uOjp0aHJvd24oIm9rIik7Cgl9CgoJLyoqCgkgKiBAaW50ZXJuYWwKCSAqIEBhY2Nlc3MgcHJpdmF0ZQoJICovCglzdGF0aWMgcHVibGljIGZ1bmN0aW9uIF9faHhfX2luaXQgKCkKCXsKCQlzdGF0aWMgJGNhbGxlZCA9IGZhbHNlOwoJCWlmICgkY2FsbGVkKSByZXR1cm47CgkJJGNhbGxlZCA9IHRydWU7CgoKCX0KfQoKY2xhc3MgX0h4QW5vbl9BcGkwIGV4dGVuZHMgSHhBbm9uIHsKCWZ1bmN0aW9uIF9fY29uc3RydWN0KCRmaWxlTmFtZSwgJGxpbmVOdW1iZXIsICRjbGFzc05hbWUsICRtZXRob2ROYW1lKSB7CgkJJHRoaXMtPmZpbGVOYW1lID0gJGZpbGVOYW1lOwoJCSR0aGlzLT5saW5lTnVtYmVyID0gJGxpbmVOdW1iZXI7CgkJJHRoaXMtPmNsYXNzTmFtZSA9ICRjbGFzc05hbWU7CgkJJHRoaXMtPm1ldGhvZE5hbWUgPSAkbWV0aG9kTmFtZTsKCX0KfQoKY2xhc3MgX0h4QW5vbl9BcGkyIGV4dGVuZHMgSHhBbm9uIHsKCWZ1bmN0aW9uIF9fY29uc3RydWN0KCRkaXNwYXRjaENvbmZpZykgewoJCSR0aGlzLT5kaXNwYXRjaENvbmZpZyA9ICRkaXNwYXRjaENvbmZpZzsKCX0KfQoKY2xhc3MgX0h4QW5vbl9BcGkxIGV4dGVuZHMgSHhBbm9uIHsKCWZ1bmN0aW9uIF9fY29uc3RydWN0KCRvYmopIHsKCQkkdGhpcy0+b2JqID0gJG9iajsKCX0KfQoKQm9vdDo6cmVnaXN0ZXJDbGFzcyhBcGk6OmNsYXNzLCAnQXBpJyk7CkJvb3Q6OnJlZ2lzdGVyTWV0YShBcGk6OmNsYXNzLCBuZXcgX0h4QW5vbl9BcGkxKG5ldyBfSHhBbm9uX0FwaTIoXEFycmF5X2h4Ojp3cmFwKFsib3kxMDp0ZXN0SlN0YWNrankyMTpoYXhlLndlYi5EaXNwYXRjaFJ1bGU6MToxYWh5Mzpmb29qUjE6MToxYWhnIl0pKSkpOwpBcGk6Ol9faHhfX2luaXQoKTsK,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluL2xpYi9BcGkucGhwIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiL21lZGlhL2ZpbHQzcmVrL2NvbW1vbi93b3JrL3Rlc3RzL3NvdXJjZW1hcC9BcGkuaHgiLCIvbWVkaWEvZmlsdDNyZWsvY29tbW9uL3dvcmsvdGVzdHMvc291cmNlbWFwLz8iLCIvbWVkaWEvZmlsdDNyZWsvY29tbW9uL3dvcmsvdGVzdHMvc291cmNlbWFwL01haW4uaHgiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFLRTs7QUFBQSxBQUFBLENBQUEsYUFBTyxNQUFQLGlCQUFBLFVBQUEsR0FBQSxPQUFBOzs7Ozs7Ozs7Ozs7QUFJQTs7QUFBQSxBQUFBLEFBQUEsU0FBSyxZQUFVOzs7O0FDVGxCO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7QURhRzs7QUFBQSxNQUFBLEFBQUEsQUFBQSxBQUFBLHNCQUFNOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFiUixpQkFBQSxpQkVJMEMsaUJBQUE7Ozs7O0FESjNDOzs7Ozs7QUFBQTs7OyJ9,Y2xhc3MgQXBpewoJCglwdWJsaWMgZnVuY3Rpb24gbmV3KCl7fQoKCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZm9vKCBjYiA6IFZvaWQtPlZvaWQgKXsKCQl0cmFjZSggIm9rIiApOwkvLyA8LS0tLS0tLSByZW1vdmluZyB0aGlzIHRyYWNlLCBzb3VyY2VtYXAgaXMgb2sKCX0KCglwdWJsaWMgZnVuY3Rpb24gZG9Gb28oKXsKCQlmb28oIGZ1bmN0aW9uKCl7fSApOwkvLyA8LS0tLS0tLS0tIGlmIGFyZyBpcyBmdW5jdGlvbiwgaXQgYnJlYWtzIHRoZSBzb3VyY2VtYXAKCX0KCQoJcHVibGljIGZ1bmN0aW9uIGRvVGVzdEpTdGFjaygpewoJCXRocm93ICJvayI7Cgl9CQp9,Y2xhc3MgQXBpewoJCglwdWJsaWMgZnVuY3Rpb24gbmV3KCl7fQoKCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZm9vKCBjYiA6IFZvaWQtPlZvaWQgKXsKCQl0cmFjZSggIm9rIiApOwkvLyA8LS0tLS0tLSByZW1vdmluZyB0aGlzIHRyYWNlLCBzb3VyY2VtYXAgaXMgb2sKCX0KCglwdWJsaWMgZnVuY3Rpb24gZG9Gb28oKXsKCQlmb28oIGZ1bmN0aW9uKCl7fSApOwkvLyA8LS0tLS0tLS0tIGlmIGFyZyBpcyBmdW5jdGlvbiwgaXQgYnJlYWtzIHRoZSBzb3VyY2VtYXAKCX0KCQoJcHVibGljIGZ1bmN0aW9uIGRvVGVzdEpTdGFjaygpewoJCXRocm93ICJvayI7Cgl9CQp9,Y2xhc3MgTWFpbnsKCXN0YXRpYyBmdW5jdGlvbiBtYWluKCl7CgkJdmFyIHVyaQkJCT0gaGF4ZS53ZWIuUmVxdWVzdC5nZXRVUkkoKTsJCQoJCXZhciBwYXJhbXMJCT0gaGF4ZS53ZWIuUmVxdWVzdC5nZXRQYXJhbXMoKTsKCQl2YXIgYXBpQ29uZmlnCT0gaGF4ZS53ZWIuRGlzcGF0Y2gubWFrZSggbmV3IEFwaSgpICk7CgkJdmFyIGQJCQk9IG5ldyBoYXhlLndlYi5EaXNwYXRjaCggdXJpLCBwYXJhbXMgKTsKCQkJZC5ydW50aW1lRGlzcGF0Y2goIGFwaUNvbmZpZyApOwoJfQp9
The text was updated successfully, but these errors were encountered: