| Index: src/factory.cc
|
| diff --git a/src/factory.cc b/src/factory.cc
|
| index 8ee9f7dad6d927bf4b2f1bb28f7af22f8f13ab47..78c1b739df0713cd225ac454b7c24a4ddc6a81b8 100644
|
| --- a/src/factory.cc
|
| +++ b/src/factory.cc
|
| @@ -186,10 +186,13 @@ Handle<FixedArray> Factory::NewUninitializedFixedArray(int size) {
|
| }
|
|
|
| Handle<BoilerplateDescription> Factory::NewBoilerplateDescription(
|
| - int boilerplate, int all_properties, bool has_seen_proto) {
|
| - DCHECK_GE(all_properties, 0);
|
| + int boilerplate, int all_properties, int index_keys, bool has_seen_proto) {
|
| + DCHECK_GE(boilerplate, 0);
|
| + DCHECK_GE(all_properties, index_keys);
|
| + DCHECK_GE(index_keys, 0);
|
|
|
| - int backing_store_size = all_properties - (has_seen_proto ? 1 : 0);
|
| + int backing_store_size =
|
| + all_properties - index_keys - (has_seen_proto ? 1 : 0);
|
| DCHECK_GE(backing_store_size, 0);
|
| bool has_different_size_backing_store = boilerplate != backing_store_size;
|
|
|
| @@ -205,7 +208,7 @@ Handle<BoilerplateDescription> Factory::NewBoilerplateDescription(
|
| Handle<BoilerplateDescription>::cast(NewFixedArray(size, TENURED));
|
|
|
| if (has_different_size_backing_store) {
|
| - DCHECK((boilerplate != all_properties) || has_seen_proto);
|
| + DCHECK((boilerplate != (all_properties - index_keys)) || has_seen_proto);
|
| description->set_backing_store_size(isolate(), backing_store_size);
|
| }
|
| return description;
|
|
|