HaxeFoundation / HaxeFoundation/haxe
[PHP] sourcemap broken
- Dominant language
- Haxe
- Stars
- 6.9k
- Forks
- 715
- Avg merge
- 2d 2h
- Merged PRs (30d)
- 11
Description
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 :rofl:
Here is my _build.hx_ :
```
-lib hx3compat
-D source-map
--php bin
--main Main
```
Here is my _Main.hx_ :
```haxe
class Main{
static function main(){
var uri = haxe.web.Request.getURI();
var params = haxe.web.Request.getParams();
var apiConfig = haxe.web.Dispatch.make( new Api() );
var d = new haxe.web.Dispatch( uri, params );
d.runtimeDispatch( apiConfig );
}
}
```
And the last _Api.hx_ :
```haxe
class Api{
public function new(){}
public static function foo( cb : Void->Void ){
trace( "ok" ); // <------- removing this trace, sourcemap is ok
}
public function doFoo(){ // <--------- If it's something else a doXXX function (related to Dispatch), sourcemap is ok
foo( function(){} ); // <--------- if arg is function, it breaks the sourcemap
}
public function doTestJStack(){
throw "ok";
}
}
```
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 the `throw` 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
Contributor guide
Assessment
This issue has not been assessed yet.