According to the issue 517398 , currently the ScriptPromiseProperty doesn't holds
the strong resolver references. So the resolver function could be GCed while
waiting for the response from the server. The holder of the ScriptPromiseProperty
must be kept alive until the promise is resolved.
There is a tests for this bug https://codereview.chromium.org/2919233002/.
I found this bug while inspecting the issue 728013 . I think NavigatorBattery must
implement ScriptWrappable::HasPendingActivity() like
https://codereview.chromium.org/2922863002.