| Index: src/objects.cc
|
| diff --git a/src/objects.cc b/src/objects.cc
|
| index 36d6ea870c493945536ed49df2ee99917782442b..e3b365467b112468ffbc68dcfbb47936757782e7 100644
|
| --- a/src/objects.cc
|
| +++ b/src/objects.cc
|
| @@ -15988,6 +15988,24 @@ void JSObject::CollectOwnPropertyNames(KeyAccumulator* keys,
|
| }
|
| }
|
|
|
| +bool JSObject::WasConstructedFromApiFunction() {
|
| + auto instance_type = map()->instance_type();
|
| + bool is_api_object = instance_type == JS_API_OBJECT_TYPE ||
|
| + instance_type == JS_SPECIAL_API_OBJECT_TYPE;
|
| +#ifdef ENABLE_SLOW_DCHECKS
|
| + if (FLAG_enable_slow_asserts) {
|
| + Object* maybe_constructor = map()->GetConstructor();
|
| + if (!maybe_constructor->IsJSFunction()) return false;
|
| + JSFunction* constructor = JSFunction::cast(maybe_constructor);
|
| + if (constructor->shared()->IsApiFunction()) {
|
| + DCHECK(is_api_object);
|
| + } else {
|
| + DCHECK(!is_api_object);
|
| + }
|
| + }
|
| +#endif
|
| + return is_api_object;
|
| +}
|
|
|
| int JSObject::NumberOfOwnElements(PropertyFilter filter) {
|
| // Fast case for objects with no elements.
|
|
|