Closed Bug 594221 Opened 14 years ago Closed 2 years ago

Re-rip out redundant bank of class object reserved slots in the global object

Categories

(Core :: JavaScript Engine, defect)

Other Branch
defect
Not set
normal

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: brendan, Unassigned)

References

Details

There's no point in adding a third |JSProto_LIMIT| "bank" of reserved slots to all global objects, and wasting cycles writing references to standard class objects (constructors mostly, duplicating the first bank) there.

/be
Summary: TM: Rip out proto cache and store prototypes in the global object → Re-rip out redundant bank of class object reserved slots in the global object
Assignee: general → gal
Please get this bandaid ripped off -- I'll gladly review.

/be
Ok, sorry, I need very precise instructions what exactly to do here and which bank to remove and where to populate the other two, or you have to do this. The first bank and 2nd bank are used by js_SetClassObject to cache the original constructor and proto we resolve. The third row is what DefineStandardSlot binds to and its where we hold the current value of the standard name. So the third bank is identical to the first initially, but then is overwritten potentially by script. I am happy to fix this, but we shouldn't do this for FF4, and I really need a treasure map here because I don't understand what you want fixed here.
Sorry, is this bug invalid? I thought the current, script-writable value was in a non-reserved slot. jorendorff, can you mark this invalid or confirm and clarify if this is a valid bug?

/be
The bank that contains the initial constructor object for each standard class is not really necessary. But

  - it's actually exposed via the API, via JS_GetClassObject

  - js_GetClassObject is used 3 more places, including js_FindClassObject,
    which is called in 6 places. Again, not for any good reason. Mostly
    it's used to force a standard class to be resolved, or to get
    StopIteration.

  - ripping this stuff out would involve touching jsxml.cpp

So I'd be happier if we fixed this, but if someone wants to WONTFIX it I'll live. It's not the sort of thing I'll be getting around to soon.
Ok, thanks. Suggest leaving this open at low priority.

/be

The bug assignee didn't login in Bugzilla in the last 7 months.
:sdetar, could you have a look please?
For more information, please visit auto_nag documentation.

Assignee: gal → nobody
Flags: needinfo?(sdetar)

I think I fixed this in bug 1298878. This data has also been moved from reserved slots to GlobalObjectData since then.

Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → WORKSFORME
Flags: needinfo?(sdetar)
You need to log in before you can comment on or make changes to this bug.