Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Investigate gecko's use of generations for dom objects #13296

Closed
jdm opened this issue Sep 16, 2016 · 1 comment
Closed

Investigate gecko's use of generations for dom objects #13296

jdm opened this issue Sep 16, 2016 · 1 comment

Comments

@jdm
Copy link
Member

@jdm jdm commented Sep 16, 2016

13:29 <bz> smaug: the only reason for the ExpandoAndGeneration mess is the slots crap on JS proxies
13:30 <bz> smaug: If that ever gets fixed, we can simplify it greatly, right?
13:30 <bz> smaug: Store the expando in a slot directly, store the pointer to the generation in another slot
13:31 <bz> smaug: Right now the problem is we only have two slots to work with, and one of them points to the Gecko object...
13:31 <smaug> ah
13:32 <bz> So we jump through hoops of all sorts
13:33 <mccr8> And you don't want to store the pointer to the expando on the Gecko object?
13:33 <bz> well, that's what we do right now, effectively
13:33 <bz> we store the pointer to the expando on the expandoandgeneration
13:34 <bz> which is stored in the Gecko object
13:39 <jdm> remind me what generation is used for?
13:39 <bz> JIT IC invalidation
13:40 <bz> The IC guards on the value of the generation to make sure that we didn't start shadowing something it cares about

That sounds like it could be important!

@jdm
Copy link
Member Author

@jdm jdm commented Sep 16, 2016

Subsequent conversation revealed that it's only necessary for OverrideBuiltins support, which is #12978.

@jdm jdm closed this Sep 16, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
1 participant
You can’t perform that action at this time.