Closed Bug 1693112 Opened 4 years ago Closed 4 years ago

Remove ReceiverGuard

Categories

(Core :: JavaScript Engine, task, P3)

task

Tracking

()

RESOLVED FIXED
87 Branch
Tracking Status
firefox87 --- fixed

People

(Reporter: jandem, Assigned: jandem)

References

Details

Attachments

(1 file)

Nowadays ReceiverGuard and HeapReceiverGuard are only used in the property iterator code. There they're always used with native objects, so this means we can just store the Shape* directly.

This means iterators will be a bit more compact and it makes it easier to remove object groups (bug 1689413).

ReceiverGuard is now only used in the iterator code. There every ReceiverGuard is
created for a native object, in which case ReceiverGuard's group is always nullptr.

This means we can just store the shape directly instead of using ReceiverGuard.

In ExtraStringCount, this removes the |* 2| because we no longer need two words
per guard/shape. This means iterators are now a bit more compact.

Also renames guardKey to shapesHash and uses HashNumber for this instead of uint32_t.

Pushed by jdemooij@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/e9658503446e Remove ReceiverGuard and replace iterator guard array with shape array. r=iain
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → 87 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: