| Index: src/objects.cc
|
| diff --git a/src/objects.cc b/src/objects.cc
|
| index 00bd2c18bc6035777310a8252fa8b3f0e7ac178e..5648f667b841d601fc7810ab5f06b2eeb89d0c4d 100644
|
| --- a/src/objects.cc
|
| +++ b/src/objects.cc
|
| @@ -22,6 +22,8 @@
|
| #include "src/codegen.h"
|
| #include "src/compilation-dependencies.h"
|
| #include "src/compiler.h"
|
| +#include "src/counters-inl.h"
|
| +#include "src/counters.h"
|
| #include "src/date.h"
|
| #include "src/debug/debug.h"
|
| #include "src/deoptimizer.h"
|
| @@ -9018,6 +9020,11 @@ Handle<Map> Map::TransitionToDataProperty(Handle<Map> map, Handle<Name> name,
|
| Handle<Object> value,
|
| PropertyAttributes attributes,
|
| StoreFromKeyed store_mode) {
|
| + RuntimeCallTimerScope stats_scope(
|
| + *map, map->is_prototype_map()
|
| + ? &RuntimeCallStats::PrototypeMap_TransitionToDataProperty
|
| + : &RuntimeCallStats::Map_TransitionToDataProperty);
|
| +
|
| DCHECK(name->IsUniqueName());
|
| DCHECK(!map->is_dictionary_map());
|
|
|
| @@ -9098,6 +9105,12 @@ Handle<Map> Map::TransitionToAccessorProperty(Isolate* isolate, Handle<Map> map,
|
| Handle<Object> getter,
|
| Handle<Object> setter,
|
| PropertyAttributes attributes) {
|
| + RuntimeCallTimerScope stats_scope(
|
| + isolate,
|
| + map->is_prototype_map()
|
| + ? &RuntimeCallStats::PrototypeMap_TransitionToAccessorProperty
|
| + : &RuntimeCallStats::Map_TransitionToAccessorProperty);
|
| +
|
| // At least one of the accessors needs to be a new value.
|
| DCHECK(!getter->IsNull() || !setter->IsNull());
|
| DCHECK(name->IsUniqueName());
|
| @@ -11667,6 +11680,8 @@ Handle<Cell> Map::GetOrCreatePrototypeChainValidityCell(Handle<Map> map,
|
| // static
|
| void Map::SetPrototype(Handle<Map> map, Handle<Object> prototype,
|
| PrototypeOptimizationMode proto_mode) {
|
| + RuntimeCallTimerScope stats_scope(*map, &RuntimeCallStats::Map_SetPrototype);
|
| +
|
| bool is_hidden = false;
|
| if (prototype->IsJSObject()) {
|
| Handle<JSObject> prototype_jsobj = Handle<JSObject>::cast(prototype);
|
|
|