goja
goja copied to clipboard
Panic when call a array's toString method
let objectA = new Object();
let objectB = new Object();
let array = [objectA, objectB];
array.push(array);
array.toString();
Panic information:
runtime: goroutine stack exceeds 1000000000-byte limit
runtime: sp=0xc020180338 stack=[0xc020180000, 0xc040180000]
fatal error: stack overflow
runtime stack:
runtime.throw({0x87eb9a?, 0x42fcfc?})
/data/saibing/my/go/src/runtime/panic.go:1101 +0x48 fp=0xc000171e90 sp=0xc000171e60 pc=0x470f08
runtime.newstack()
/data/saibing/my/go/src/runtime/stack.go:1107 +0x5bb fp=0xc000171fc8 sp=0xc000171e90 pc=0x457b3b
runtime.morestack()
/data/saibing/my/go/src/runtime/asm_amd64.s:621 +0x7a fp=0xc000171fd0 sp=0xc000171fc8 pc=0x4764fa
goroutine 1 gp=0xc000002380 m=4 mp=0xc000200008 [running]:
fmt.(*pp).fmtString(0xc0002101a0?, {0x87bc99?, 0x6?}, 0x73?)
/data/saibing/my/go/src/fmt/print.go:488 +0xe5 fp=0xc020180348 sp=0xc020180340 pc=0x4fa8e5
fmt.(*pp).printArg(0xc0002101a0, {0x7ef560, 0xc002234de0}, 0x73)
/data/saibing/my/go/src/fmt/print.go:741 +0x378 fp=0xc0201803e0 sp=0xc020180348 pc=0x4fc538
fmt.(*pp).doPrintf(0xc0002101a0, {0x87d9ad, 0xb}, {0xc020180588, 0x1, 0x1})
/data/saibing/my/go/src/fmt/print.go:1074 +0x37e fp=0xc0201804c8 sp=0xc0201803e0 pc=0x4ff07e
fmt.Sprintf({0x87d9ad, 0xb}, {0xc020180588, 0x1, 0x1})
/data/saibing/my/go/src/fmt/print.go:239 +0x53 fp=0xc020180520 sp=0xc0201804c8 pc=0x4f9553
github.com/dop251/goja.(*Runtime).objectproto_toString(0x6d537b?, {{0x90d908, 0xc00016a330}, {0x0, 0x0, 0x0}})
/data/saibing/git/github/goja/builtin_object.go:482 +0x1da fp=0xc0201805a8 sp=0xc020180520 pc=0x64201a