Description[runtime] Allocate space for computed property names.
Allocate space in the backing store for computed property names.
The property backing store was pre-allocated for the constant
properties up to the first non-constant (computed name) property.
To use lowering for storing data properties in literals
with computed property names effectively, a fast store is needed, i.e.,
available space in the property backing store for properties
with computed names.
backing_store_size is the number of all properties (including
computed names, but without __proto__)
that is calculated in the ast and passed to the runtime function that allocates
the property backing store. backing_store_size and
constant_properties constitute a BoilerplateDescription.
backing_store_size might be slightly too high because computed names
can evaluate to the same name, but that should be a rare
case so over-allocating is OK.
If a property is __proto__, we don't store it as a regular
property, because the map changes. Keep track of
has_seen_proto in the parser to calculate the
backing store size correctly.
BUG=v8:5625
Review-Url: https://codereview.chromium.org/2632503003
Cr-Commit-Position: refs/heads/master@{#42576}
Committed: https://chromium.googlesource.com/v8/v8/+/399f36b5185deafa263def840d8f98bb61ff3ab4
Patch Set 1 #Patch Set 2 : Allow Uninitialized keys. #Patch Set 3 : Count total number of properties. #Patch Set 4 : Fix evaluation order warning. #Patch Set 5 : Hide last slot with number in ConstantProperties class. #Patch Set 6 : Delete comments. #Patch Set 7 : Rebase. #Patch Set 8 : Fix some variable names. #
Total comments: 16
Patch Set 9 : Address review comments. #Patch Set 10 : Rebase. #Patch Set 11 : Fix typo. #
Total comments: 1
Patch Set 12 : Do not store size if it can be computed. #Patch Set 13 : Comments and reorder. #
Messages
Total messages: 76 (60 generated)
|