Open
Description
When a deadlock is detected by Go, it dumps a stack trace. GopherJS does not. This makes pinpointing these errors very difficult.
To reproduce, create this simple test program:
package main
func main() {
x := make(chan int)
<-x
}
Then execute with Go:
$ go run main.go
fatal error: all goroutines are asleep - deadlock!
goroutine 1 [chan receive]:
main.main()
/home/jonhall/go/src/github.com/flimzy/test/main.go:5 +0x4d
exit status 2
And with GopherJS:
$ gopherjs run main.go
fatal error: all goroutines are asleep - deadlock!