Lines Matching refs:isolate
13 #include "src/execution/isolate-inl.h"
34 Isolate* isolate, Handle<Object> lookup_start_object, Handle<Object> key,
39 if (lookup_start_object->IsNullOrUndefined(isolate)) {
40 ErrorUtils::ThrowLoadFromNullOrUndefined(isolate, lookup_start_object, key);
45 PropertyKey lookup_key(isolate, key, &success);
48 LookupIterator(isolate, receiver, lookup_key, lookup_start_object);
62 THROW_NEW_ERROR(isolate, NewTypeError(message, key, lookup_start_object),
68 MaybeHandle<Object> Runtime::HasProperty(Isolate* isolate,
74 isolate,
82 ASSIGN_RETURN_ON_EXCEPTION(isolate, name, Object::ToName(isolate, key),
86 Maybe<bool> maybe = JSReceiver::HasProperty(isolate, receiver, name);
88 return maybe.FromJust() ? ReadOnlyRoots(isolate).true_value_handle()
89 : ReadOnlyRoots(isolate).false_value_handle();
99 inline void ClearField(Isolate* isolate, JSObject object, FieldIndex index) {
102 ReadOnlyRoots(isolate).one_pointer_filler_map_word();
105 ReadOnlyRoots(isolate).one_pointer_filler_map());
112 ReadOnlyRoots(isolate).one_pointer_filler_map());
116 void GeneralizeAllTransitionsToFieldAsMutable(Isolate* isolate, Handle<Map> map,
126 TransitionsAccessor transitions(isolate, *map);
131 DCHECK_EQ(*name, target.GetLastDescriptorName(isolate));
132 PropertyDetails details = target.GetLastDescriptorDetails(isolate);
136 target_maps[target_maps_count++] = handle(target, isolate);
148 target->instance_descriptors(isolate).GetDetails(descriptor);
150 target->instance_descriptors(isolate).GetFieldType(descriptor),
151 isolate);
152 MapUpdater::GeneralizeField(isolate, target, descriptor,
155 DCHECK_EQ(PropertyConstness::kMutable, target->instance_descriptors(isolate)
161 bool DeleteObjectPropertyFast(Isolate* isolate, Handle<JSReceiver> receiver,
168 Handle<Map> receiver_map(receiver->map(), isolate);
179 receiver_map->instance_descriptors(isolate), isolate);
185 Handle<Object> backpointer(receiver_map->GetBackPointer(), isolate);
202 isolate->heap()->NotifyObjectLayoutChange(*receiver, no_gc,
210 receiver->SetProperties(ReadOnlyRoots(isolate).empty_fixed_array());
212 ClearField(isolate, JSObject::cast(*receiver), index);
221 isolate->heap()->ClearRecordedSlot(*receiver,
234 receiver_map->NotifyLeafMapLayoutChange(isolate);
238 receiver->HeapObjectVerify(isolate);
239 receiver->property_array().PropertyArrayVerify(isolate);
255 JSObject::MigrateInstance(isolate, Handle<JSObject>::cast(receiver));
256 parent_map = handle(receiver->map(), isolate);
263 GeneralizeAllTransitionsToFieldAsMutable(isolate, parent_map, key);
270 Maybe<bool> Runtime::DeleteObjectProperty(Isolate* isolate,
274 if (DeleteObjectPropertyFast(isolate, receiver, key)) return Just(true);
277 PropertyKey lookup_key(isolate, key, &success);
279 LookupIterator it(isolate, receiver, lookup_key, LookupIterator::OWN);
286 HandleScope scope(isolate);
291 ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, receiver,
292 Object::ToObject(isolate, object));
297 isolate, keys,
306 HandleScope scope(isolate);
311 ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, receiver,
312 Object::ToObject(isolate, object));
319 isolate, keys,
327 HandleScope scope(isolate);
332 ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, receiver,
333 Object::ToObject(isolate, object));
335 Handle<Map> map(receiver->map(), isolate);
341 isolate, keys,
347 isolate, keys,
358 HandleScope scope(isolate);
364 PropertyKey key(isolate, property, &success);
365 if (!success) return ReadOnlyRoots(isolate).exception();
370 LookupIterator it(isolate, object, key, LookupIterator::OWN);
373 if (!result.IsJust()) return ReadOnlyRoots(isolate).exception();
374 return isolate->heap()->ToBoolean(result.FromJust());
385 LookupIterator it(isolate, js_obj, key, js_obj, c);
387 if (maybe.IsNothing()) return ReadOnlyRoots(isolate).exception();
388 DCHECK(!isolate->has_pending_exception());
389 if (maybe.FromJust()) return ReadOnlyRoots(isolate).true_value();
397 return ReadOnlyRoots(isolate).false_value();
401 LookupIterator it(isolate, js_obj, key, js_obj, LookupIterator::OWN);
403 if (maybe.IsNothing()) return ReadOnlyRoots(isolate).exception();
404 DCHECK(!isolate->has_pending_exception());
405 return isolate->heap()->ToBoolean(maybe.FromJust());
408 LookupIterator it(isolate, object, key, Handle<JSProxy>::cast(object),
412 if (attributes.IsNothing()) return ReadOnlyRoots(isolate).exception();
413 return isolate->heap()->ToBoolean(attributes.FromJust() != ABSENT);
416 return isolate->heap()->ToBoolean(
419 : key.name()->Equals(ReadOnlyRoots(isolate).length_string()));
420 } else if (object->IsNullOrUndefined(isolate)) {
422 isolate, NewTypeError(MessageTemplate::kUndefinedOrNullToObject));
425 return ReadOnlyRoots(isolate).false_value();
429 HandleScope scope(isolate);
435 PropertyKey key(isolate, property, &success);
436 if (!success) return ReadOnlyRoots(isolate).undefined_value();
440 LookupIterator it(isolate, js_obj, key, js_obj, LookupIterator::OWN);
444 return isolate->heap()->ToBoolean(false);
446 return isolate->heap()->ToBoolean(it.constness() ==
449 return ReadOnlyRoots(isolate).undefined_value();
453 return ReadOnlyRoots(isolate).undefined_value();
457 return isolate->heap()->ToBoolean(V8_DICT_PROPERTY_CONST_TRACKING_BOOL);
461 HandleScope scope(isolate);
473 receiver->property_dictionary_swiss(), isolate);
474 dictionary = SwissNameDictionary::Add(isolate, dictionary, name, value,
478 Handle<NameDictionary> dictionary(receiver->property_dictionary(), isolate);
480 NameDictionary::Add(isolate, dictionary, name, value, property_details);
488 HandleScope scope(isolate);
496 LookupIterator it(isolate, receiver, brand, LookupIterator::OWN);
500 isolate,
514 handle(Context::cast(context->get(Context::PREVIOUS_INDEX)), isolate);
527 HandleScope scope(isolate);
532 if (!prototype->IsNull(isolate) && !prototype->IsJSReceiver()) {
534 isolate, NewTypeError(MessageTemplate::kProtoObjectOrNull, prototype));
538 isolate, obj, JSObject::ObjectCreate(isolate, prototype));
541 if (!properties->IsUndefined(isolate)) {
545 isolate, JSReceiver::DefineProperties(isolate, obj, properties));
552 Isolate* isolate, Handle<Object> object, Handle<Object> key,
555 if (object->IsNullOrUndefined(isolate)) {
557 Object::NoSideEffectsToMaybeString(isolate, key);
561 isolate,
567 isolate,
575 PropertyKey lookup_key(isolate, key, &success);
577 LookupIterator it(isolate, object, lookup_key);
589 MaybeHandle<Object> Runtime::DefineObjectOwnProperty(Isolate* isolate,
594 if (object->IsNullOrUndefined(isolate)) {
596 isolate,
603 PropertyKey lookup_key(isolate, key, &success);
605 LookupIterator it(isolate, object, lookup_key, LookupIterator::OWN);
623 HandleScope scope(isolate);
628 JSReceiver::SetPrototype(isolate, obj, prototype, false, kThrowOnError),
629 ReadOnlyRoots(isolate).exception());
634 HandleScope scope(isolate);
639 if (properties > 100000) return isolate->ThrowIllegalOperation();
641 JSObject::NormalizeProperties(isolate, object, KEEP_INOBJECT_PROPERTIES,
648 HandleScope scope(isolate);
655 isolate, values,
658 return *isolate->factory()->NewJSArrayWithElements(values);
662 HandleScope scope(isolate);
669 isolate, value,
672 return *isolate->factory()->NewJSArrayWithElements(value);
676 HandleScope scope(isolate);
683 isolate, entries,
686 return *isolate->factory()->NewJSArrayWithElements(entries);
690 HandleScope scope(isolate);
697 isolate, entries,
700 return *isolate->factory()->NewJSArrayWithElements(entries);
704 HandleScope scope(isolate);
712 MAYBE_RETURN(result, ReadOnlyRoots(isolate).exception());
713 return isolate->heap()->ToBoolean(result.FromJust());
717 HandleScope scope(isolate);
723 ReadOnlyRoots(isolate).exception());
728 HandleScope scope(isolate);
734 MAYBE_RETURN(result, ReadOnlyRoots(isolate).exception());
735 return *isolate->factory()->ToBoolean(result.FromJust());
739 HandleScope scope(isolate);
743 RETURN_RESULT_OR_FAILURE(isolate,
744 JSReceiver::GetPrototype(isolate, receiver));
748 HandleScope scope(isolate);
755 JSReceiver::SetPrototype(isolate, object, proto, true, kThrowOnError),
756 ReadOnlyRoots(isolate).exception());
762 HandleScope scope(isolate);
769 JSReceiver::SetPrototype(isolate, object, proto, true, kDontThrow);
770 MAYBE_RETURN(result, ReadOnlyRoots(isolate).exception());
771 return *isolate->factory()->ToBoolean(result.FromJust());
775 HandleScope scope(isolate);
800 key_obj = isolate->factory()->NewNumberFromUint(index);
808 key_obj = key = isolate->factory()->InternalizeName(key);
815 InternalIndex entry = dictionary.FindEntry(isolate, key);
820 if (!value.IsTheHole(isolate)) return value;
829 InternalIndex entry = dictionary.FindEntry(isolate, *key);
837 InternalIndex entry = dictionary.FindEntry(isolate, key);
868 Factory* factory = isolate->factory();
870 String::Flatten(isolate, str)->Get(smi_index));
876 isolate, Runtime::GetObjectProperty(isolate, lookup_start_obj, key_obj,
881 HandleScope scope(isolate);
889 isolate, Runtime::SetObjectProperty(isolate, object, key, value,
894 HandleScope scope(isolate);
902 isolate, Runtime::DefineObjectOwnProperty(isolate, object, key, value,
907 HandleScope scope(isolate);
915 isolate, Runtime::SetObjectProperty(isolate, object, key, value,
926 HandleScope scope(isolate);
933 PropertyKey lookup_key(isolate, key);
934 LookupIterator it(isolate, object, lookup_key, LookupIterator::OWN);
938 RETURN_FAILURE_IF_SCHEDULED_EXCEPTION(isolate);
948 Object DeleteProperty(Isolate* isolate, Handle<Object> object,
951 ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, receiver,
952 Object::ToObject(isolate, object));
954 Runtime::DeleteObjectProperty(isolate, receiver, key, language_mode);
955 MAYBE_RETURN(result, ReadOnlyRoots(isolate).exception());
956 return isolate->heap()->ToBoolean(result.FromJust());
962 HandleScope scope(isolate);
967 return DeleteProperty(isolate, object, key,
972 HandleScope scope(isolate);
976 return *NameDictionary::Shrink(isolate, dictionary);
980 HandleScope scope(isolate);
984 return *SwissNameDictionary::Shrink(isolate, dictionary);
989 HandleScope scope(isolate);
997 isolate,
1004 ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, name,
1005 Object::ToName(isolate, key));
1008 Maybe<bool> maybe = JSReceiver::HasProperty(isolate, receiver, name);
1009 if (maybe.IsNothing()) return ReadOnlyRoots(isolate).exception();
1010 return isolate->heap()->ToBoolean(maybe.FromJust());
1014 HandleScope scope(isolate);
1022 isolate, keys,
1026 return *isolate->factory()->NewJSArrayWithElements(keys);
1030 HandleScope scope(isolate);
1041 HandleScope scope(isolate);
1043 return *isolate->factory()->NewHeapNumber(0);
1047 HandleScope scope(isolate);
1052 isolate,
1057 HandleScope scope(isolate);
1063 return *JSFunction::GetDerivedRabGsabMap(isolate, target, new_target);
1066 isolate, JSFunction::GetDerivedMap(isolate, target, new_target));
1072 HandleScope scope(isolate);
1076 MapUpdater::CompleteInobjectSlackTracking(isolate, *initial_map);
1078 return ReadOnlyRoots(isolate).undefined_value();
1082 HandleScope scope(isolate);
1091 if (!JSObject::TryMigrateInstance(isolate, js_object)) return Smi::zero();
1095 static bool IsValidAccessor(Isolate* isolate, Handle<Object> obj) {
1096 return obj->IsNullOrUndefined(isolate) || obj->IsCallable();
1106 HandleScope scope(isolate);
1109 CHECK(!obj->IsNull(isolate));
1112 CHECK(IsValidAccessor(isolate, getter));
1114 CHECK(IsValidAccessor(isolate, setter));
1118 isolate, JSObject::DefineAccessor(obj, name, getter, setter, attrs));
1119 return ReadOnlyRoots(isolate).undefined_value();
1123 HandleScope scope(isolate);
1138 nexus.ConfigureMonomorphic(name, handle(object->map(), isolate),
1160 Handle<Map> function_map(function->map(), isolate);
1162 isolate->factory()->empty_string())) {
1163 return ReadOnlyRoots(isolate).exception();
1170 PropertyKey key(isolate, name);
1171 LookupIterator it(isolate, object, key, object, LookupIterator::OWN);
1185 HandleScope scope(isolate);
1192 return ReadOnlyRoots(isolate).undefined_value();
1196 Handle<String> type = Object::TypeOf(isolate, value);
1199 type = JSReceiver::GetConstructorName(isolate, object);
1200 } else if (value->IsNull(isolate)) {
1203 type = Handle<String>(ReadOnlyRoots(isolate).null_string(), isolate);
1210 return ReadOnlyRoots(isolate).undefined_value();
1214 SealHandleScope shs(isolate);
1217 return isolate->heap()->ToBoolean(
1222 SealHandleScope shs(isolate);
1225 return isolate->heap()->ToBoolean(obj.IsJSReceiver());
1229 HandleScope scope(isolate);
1232 return *JSFunction::GetName(isolate, function);
1236 HandleScope scope(isolate);
1244 Handle<Map> getter_map(getter->map(), isolate);
1245 if (!JSFunction::SetName(getter, name, isolate->factory()->get_string())) {
1246 return ReadOnlyRoots(isolate).exception();
1252 isolate,
1254 isolate->factory()->null_value(), attrs));
1255 return ReadOnlyRoots(isolate).undefined_value();
1259 HandleScope scope(isolate);
1265 if (source->IsUndefined(isolate) || source->IsNull(isolate)) {
1266 return ReadOnlyRoots(isolate).undefined_value();
1270 isolate, target, source,
1272 ReadOnlyRoots(isolate).exception());
1273 return ReadOnlyRoots(isolate).undefined_value();
1277 HandleScope scope(isolate);
1283 if (source->IsUndefined(isolate) || source->IsNull(isolate)) {
1284 return ReadOnlyRoots(isolate).undefined_value();
1289 isolate, target, source,
1291 ReadOnlyRoots(isolate).exception());
1292 return ReadOnlyRoots(isolate).undefined_value();
1299 void CheckExcludedPropertiesAreOnCallerStack(Isolate* isolate, Address base,
1302 StackFrameIterator it(isolate);
1332 HandleScope scope(isolate);
1342 isolate, reinterpret_cast<Address>(excluded_property_base),
1346 if (source->IsNullOrUndefined(isolate)) {
1347 return ErrorUtils::ThrowLoadFromNullOrUndefined(isolate, source,
1364 property = isolate->factory()->NewNumberFromUint(property_num);
1371 isolate->factory()->NewJSObject(isolate->object_function());
1373 isolate, target, source,
1376 ReadOnlyRoots(isolate).exception());
1381 HandleScope scope(isolate);
1389 Handle<Map> setter_map(setter->map(), isolate);
1390 if (!JSFunction::SetName(setter, name, isolate->factory()->set_string())) {
1391 return ReadOnlyRoots(isolate).exception();
1397 isolate,
1398 JSObject::DefineAccessor(object, name, isolate->factory()->null_value(),
1400 return ReadOnlyRoots(isolate).undefined_value();
1410 HandleScope scope(isolate);
1413 RETURN_RESULT_OR_FAILURE(isolate, Object::ToNumber(isolate, input));
1417 HandleScope scope(isolate);
1420 RETURN_RESULT_OR_FAILURE(isolate, Object::ToNumeric(isolate, input));
1424 HandleScope scope(isolate);
1427 RETURN_RESULT_OR_FAILURE(isolate, Object::ToLength(isolate, input));
1431 HandleScope scope(isolate);
1434 RETURN_RESULT_OR_FAILURE(isolate, Object::ToString(isolate, input));
1438 HandleScope scope(isolate);
1441 RETURN_RESULT_OR_FAILURE(isolate, Object::ToName(isolate, input));
1445 HandleScope scope(isolate);
1449 if (!object->IsJSReceiver()) return ReadOnlyRoots(isolate).false_value();
1451 isolate, Handle<JSReceiver>::cast(object), prototype);
1452 MAYBE_RETURN(result, ReadOnlyRoots(isolate).exception());
1453 return isolate->heap()->ToBoolean(result.FromJust());
1458 HandleScope scope(isolate);
1462 return *isolate->factory()->NewJSIteratorResult(value,
1463 done->BooleanValue(isolate));
1467 HandleScope scope(isolate);
1473 PropertyKey lookup_key(isolate, key, &success);
1474 if (!success) return ReadOnlyRoots(isolate).exception();
1475 LookupIterator it(isolate, o, lookup_key, LookupIterator::OWN);
1477 ReadOnlyRoots(isolate).exception());
1482 HandleScope scope(isolate);
1489 RETURN_RESULT_OR_FAILURE(isolate,
1495 HandleScope scope(isolate);
1503 JSReceiver::GetOwnPropertyDescriptor(isolate, object, name, &desc);
1504 MAYBE_RETURN(found, ReadOnlyRoots(isolate).exception());
1506 if (!found.FromJust()) return ReadOnlyRoots(isolate).undefined_value();
1507 return *desc.ToPropertyDescriptorObject(isolate);
1511 HandleScope scope(isolate);
1519 HandleScope scope(isolate);
1527 HandleScope scope(isolate);
1531 Handle<AccessorPair> pair = isolate->factory()->NewAccessorPair();
1539 HandleScope scope(isolate);
1542 return *isolate->factory()->NewSwissNameDictionary(at_least_space_for,
1549 HandleScope scope(isolate);
1557 return *SwissNameDictionary::Add(isolate, table, key, value, details);
1563 HandleScope scope(isolate);
1567 InternalIndex index = table.FindEntry(isolate, key);
1576 HandleScope scope(isolate);
1586 return ReadOnlyRoots(isolate).undefined_value();
1592 HandleScope scope(isolate);
1596 return *SwissNameDictionary::DeleteEntry(isolate, table, index);
1602 HandleScope scope(isolate);
1612 HandleScope scope(isolate);
1621 HandleScope scope(isolate);
1631 HandleScope scope(isolate);
1641 HandleScope scope(isolate);