Eliminate Shape from ObjectOps API

NEW
Assigned to

Status

()

Core
JavaScript Engine
8 years ago
2 years ago

People

(Reporter: gal, Assigned: gal)

Tracking

Trunk
x86
Mac OS X
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(blocking2.0 -)

Details

(Assignee)

Description

8 years ago
Its a hazard when objects change nativeness and without it we can also get rid of dropProperty if we play our cards right.
(Assignee)

Updated

8 years ago
Assignee: general → gal
(Assignee)

Updated

8 years ago
Blocks: 546590

Updated

8 years ago
Blocks: 566818

Updated

8 years ago
No longer blocks: 566818

Comment 1

8 years ago
gal, do you work on this? I would like to eliminate at least the drop method as the first step with the ultimate goal of avoiding recursive lookupProperty calls on non-native prototypes in js_LookupProperty and friends.
(Assignee)

Comment 2

8 years ago
We can buddy up on this. I am planning major surgery on this, but we can do it in steps. My goal was to eliminate lookupProperty/dropProperty/get+setAttributes and replace them with hasProperty/getPropertyDescriptor/setPropertyDescriptor (getting/setting via JSPropertyDescriptor). get/setPropertyDescriptor will do its own lookup. JSScopeProperty is no longer exposed. Basically we will mirror the level of abstraction of procies with a few mild modifications and simplifications (merging enumerate and enumerateOwn) for example. I am also trying to figure out whether to do the proto walk inside or outside the API. Both has merit. Proxies (and e4x) want to lookup along proto on their own (or in case of e4x skip to NULL and stop the lookup). I was thinking maybe I will return the proto to consult next, then the loop is outside the api, but the api can stop the lookup.

Updated

8 years ago
Depends on: 566836

Updated

7 years ago
blocking2.0: --- → betaN+
No activity in a long time. Are we still doing this?
(Assignee)

Comment 4

7 years ago
Yeah, but not for FF4 and we found a way around this for swap.
blocking2.0: betaN+ → -
Blocks: 694103
No longer blocks: 694103

Comment 5

5 years ago
It isn't clear to me whether this bug is still relevant. Is it?
(In reply to David Bruant from comment #5)
> It isn't clear to me whether this bug is still relevant. Is it?

NI?ing Jason.
Flags: needinfo?(jorendorff)
Barely relevant.  I think the right way to interpret this now is to s/JSProperty/js::Shape/, at which point the only remaining op is lookupProperty.  Once that operation dies, we can consider this bug fixed.

Looking now, it appears at a skim that lookupProperty and LookupProperty and friends are basically used only for scope lookups of a name.  I'm not sure how much work it would be to remove that, just yet, but certainly we're closer to it than we've ever been.
Summary: Eliminate JSProperty from ObjectOps api → Eliminate Shape from ObjectOps API
Flags: needinfo?(jorendorff)
You need to log in before you can comment on or make changes to this bug.