Javascript:SpiderMonkey:PropertyElementStorage: Difference between revisions

Jump to navigation Jump to search
no edit summary
(Sparse elements)
No edit summary
Line 73: Line 73:
# Make the <code>baseops::*</code> methods take <code>Property</code> handles - 1 week?
# Make the <code>baseops::*</code> methods take <code>Property</code> handles - 1 week?
#* Perhaps the ugliest part of all this, because of the significant complexity amongst all these methods in their current forms.
#* Perhaps the ugliest part of all this, because of the significant complexity amongst all these methods in their current forms.
== Meta-object protocol changes ==
Our internal meta-object protocol, as represented in <code>ObjectOps</code>, is quite dissimilar to the ECMAScript one.  That one is formulated in terms of own properties throughout, and in terms of property descriptor objects.  Ours is formulated in terms of property lookups, property values, and attributes accessed through attribute-accessing methods, and it lacks descriptors entirely.  Our MOP also requires reimplementation of the property lookup process (in the start object, along the prototype chain, etc.) in several places.
Changing underlying structure, and doing it in an obviously correct way, requires converting our MOP to one more like ES6.  Almost certainly a superset of it in specific areas -- property descriptors must be able to represent <code>PropertyOp</code> and <code>StrictPropertyOp</code>, for now -- but the idioms should be obviously parallel.
This also has benefits for the DOM bindings people, who have implemented WebIDL bindings using our current setup and have ignored the issues our current MOP doesn't let them address.
'''Time''': ???


== Sparse elements ==
== Sparse elements ==
Confirmed users
446

edits

Navigation menu