Missing OOM handling in registerWithFinalizationGroup and uninitialised FinalizationRecordVectorObject when tracing
Categories
(Core :: JavaScript: GC, defect, P1)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox72 | --- | fixed |
People
(Reporter: anba, Assigned: anba)
Details
Attachments
(5 files)
This test case asserts with Assertion failure: cx->isExceptionPending() (Thunk execution failed but no exception was raised - missing call to js::ReportOutOfMemory()?):
let group = new FinalizationGroup(x => 0);
let target = {};
let token = {};
oomTest(() => group.register(target, 1, token));
This test case asserts with Assertion failure: isDouble():
enableShellAllocationMetadataBuilder();
evaluate(`
var group = new FinalizationGroup(x => 0);
gczeal(9,3);
group.register({}, 1, {});
`);
| Assignee | ||
Comment 1•6 years ago
|
||
| Assignee | ||
Comment 2•6 years ago
|
||
Depends on D55086
| Assignee | ||
Comment 3•6 years ago
|
||
NewObjectWithClassProto when called with a non-null prototype calls NewObjectWithGivenTaggedProto,
but that function can be called more directly through NewObjectWithGivenProto.
Depends on D55087
| Assignee | ||
Comment 4•6 years ago
|
||
js::Call avoids copying the arguments into a separate InvokeArgs struct,
therefore it's generally preferred for calls within SpiderMonkey.
Depends on D55088
| Assignee | ||
Comment 5•6 years ago
|
||
Depends on D55089
Updated•6 years ago
|
Comment 7•6 years ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/889b0858a957
https://hg.mozilla.org/mozilla-central/rev/ad0a7949dd8e
https://hg.mozilla.org/mozilla-central/rev/bc921ac2bd1b
https://hg.mozilla.org/mozilla-central/rev/3de775ee7d0e
https://hg.mozilla.org/mozilla-central/rev/273f738dab5f
Description
•