Lines Matching defs:isolate

15 #include "src/execution/isolate-inl.h"
81 void SourceCodeCache::Initialize(Isolate* isolate, bool create_heap_objects) {
82 cache_ = create_heap_objects ? ReadOnlyRoots(isolate).empty_fixed_array()
90 bool SourceCodeCache::Lookup(Isolate* isolate, base::Vector<const char> name,
96 SharedFunctionInfo::cast(cache_.get(i + 1)), isolate);
103 void SourceCodeCache::Add(Isolate* isolate, base::Vector<const char> name,
105 Factory* factory = isolate->factory();
106 HandleScope scope(isolate);
123 Bootstrapper::Bootstrapper(Isolate* isolate)
124 : isolate_(isolate),
165 Genesis(Isolate* isolate, MaybeHandle<JSGlobalProxy> maybe_global_proxy,
170 Genesis(Isolate* isolate, MaybeHandle<JSGlobalProxy> maybe_global_proxy,
174 Isolate* isolate() const { return isolate_; }
272 static bool InstallExtensions(Isolate* isolate,
275 static bool InstallAutoExtensions(Isolate* isolate,
277 static bool InstallRequestedExtensions(Isolate* isolate,
280 static bool InstallExtension(Isolate* isolate, const char* name,
282 static bool InstallExtension(Isolate* isolate,
285 static bool InstallSpecialObjects(Isolate* isolate,
302 static bool CompileExtension(Isolate* isolate, v8::Extension* extension);
384 V8_NOINLINE Handle<JSFunction> CreateFunctionForBuiltin(Isolate* isolate,
388 Factory* factory = isolate->factory();
389 Handle<NativeContext> context(isolate->native_context());
396 return Factory::JSFunctionBuilder{isolate, info, context}
402 Isolate* isolate, Handle<String> name, Builtin builtin,
405 Factory* factory = isolate->factory();
406 Handle<NativeContext> context(isolate->native_context());
409 ? isolate->strict_function_map()
410 : isolate->strict_function_with_readonly_prototype_map();
419 Factory::JSFunctionBuilder{isolate, info, context}.set_map(map).Build();
444 if (!IsResumableFunction(info->kind()) && prototype->IsTheHole(isolate)) {
447 JSFunction::SetInitialMap(isolate, result, initial_map, prototype);
453 Isolate* isolate, Handle<String> name, Builtin builtin) {
454 Factory* factory = isolate->factory();
455 Handle<NativeContext> context(isolate->native_context());
456 Handle<Map> map = isolate->strict_function_without_prototype_map();
463 return Factory::JSFunctionBuilder{isolate, info, context}
469 Isolate* isolate, Handle<String> name, InstanceType type, int instance_size,
474 isolate, name, builtin, prototype, type, instance_size,
478 JSObject::MakePrototypesFast(handle(result->prototype(), isolate),
479 kStartAtReceiver, isolate);
482 JSObject::MakePrototypesFast(result, kStartAtReceiver, isolate);
488 Isolate* isolate, const char* name, InstanceType type, int instance_size,
490 return CreateFunction(isolate,
491 isolate->factory()->InternalizeUtf8String(name), type,
496 Isolate* isolate, Handle<JSObject> target, Handle<String> name,
501 isolate, name, type, instance_size, inobject_properties, prototype, call);
502 JSObject::AddProperty(isolate, target, name, function, DONT_ENUM);
507 Isolate* isolate, Handle<JSObject> target, const char* name,
510 return InstallFunction(isolate, target,
511 isolate->factory()->InternalizeUtf8String(name), type,
522 V8_NOINLINE void SetConstructorInstanceType(Isolate* isolate,
531 DCHECK_NE(map, *isolate->strict_function_map());
532 DCHECK_NE(map, *isolate->strict_function_with_readonly_prototype_map());
535 DCHECK(map.GetBackPointer().IsUndefined(isolate));
541 V8_NOINLINE Handle<JSFunction> SimpleCreateFunction(Isolate* isolate,
546 name = String::Flatten(isolate, name, AllocationType::kOld);
548 CreateFunctionForBuiltinWithoutPrototype(isolate, name, call);
550 JSObject::MakePrototypesFast(fun, kStartAtReceiver, isolate);
563 Isolate* isolate, Handle<JSObject> base, const char* name, Builtin call,
566 isolate->factory()->InternalizeUtf8String(name);
568 SimpleCreateFunction(isolate, internalized_name, call, len, adapt);
569 JSObject::AddProperty(isolate, base, internalized_name, fun, DONT_ENUM);
574 Isolate* isolate, Handle<JSObject> base, const char* name, Builtin call,
579 isolate->factory()->InternalizeUtf8String(name);
581 SimpleCreateFunction(isolate, internalized_name, call, len, adapt);
582 JSObject::AddProperty(isolate, base, internalized_name, fun, attrs);
587 Isolate* isolate, Handle<JSObject> base, Handle<Symbol> symbol,
591 isolate->factory()->InternalizeUtf8String(symbol_string);
593 SimpleCreateFunction(isolate, internalized_symbol, call, len, adapt);
594 JSObject::AddProperty(isolate, base, symbol, fun, attrs);
598 V8_NOINLINE void SimpleInstallGetterSetter(Isolate* isolate,
604 Name::ToFunctionName(isolate, name, isolate->factory()->get_string())
607 SimpleCreateFunction(isolate, getter_name, call_getter, 0, true);
610 Name::ToFunctionName(isolate, name, isolate->factory()->set_string())
613 SimpleCreateFunction(isolate, setter_name, call_setter, 1, true);
618 void SimpleInstallGetterSetter(Isolate* isolate, Handle<JSObject> base,
621 SimpleInstallGetterSetter(isolate, base,
622 isolate->factory()->InternalizeUtf8String(name),
626 V8_NOINLINE Handle<JSFunction> SimpleInstallGetter(Isolate* isolate,
632 Name::ToFunctionName(isolate, name, isolate->factory()->get_string())
635 SimpleCreateFunction(isolate, getter_name, call, 0, adapt);
637 Handle<Object> setter = isolate->factory()->undefined_value();
645 V8_NOINLINE Handle<JSFunction> SimpleInstallGetter(Isolate* isolate,
649 return SimpleInstallGetter(isolate, base, name, name, call, adapt);
652 V8_NOINLINE void InstallConstant(Isolate* isolate, Handle<JSObject> holder,
655 isolate, holder, isolate->factory()->InternalizeUtf8String(name), value,
659 V8_NOINLINE void InstallTrueValuedProperty(Isolate* isolate,
662 JSObject::AddProperty(isolate, holder,
663 isolate->factory()->InternalizeUtf8String(name),
664 isolate->factory()->true_value(), NONE);
667 V8_NOINLINE void InstallSpeciesGetter(Isolate* isolate,
669 Factory* factory = isolate->factory();
672 SimpleInstallGetter(isolate, constructor, factory->symbol_species_string(),
677 V8_NOINLINE void InstallToStringTag(Isolate* isolate, Handle<JSObject> holder,
679 JSObject::AddProperty(isolate, holder,
680 isolate->factory()->to_string_tag_symbol(), value,
684 void InstallToStringTag(Isolate* isolate, Handle<JSObject> holder,
686 InstallToStringTag(isolate, holder,
687 isolate->factory()->InternalizeUtf8String(value));
702 CreateFunctionForBuiltin(isolate(), factory()->empty_string(),
713 ReadOnlyRoots(isolate()).empty_function_scope_info());
715 empty_function->shared().SetScript(ReadOnlyRoots(isolate()), *script, 1);
755 isolate(), name, Builtin::kStrictPoisonPillThrower);
768 Handle<Object> value(Smi::FromInt(function->length()), isolate());
852 isolate(), handle(object_function_prototype->map(), isolate()),
863 Map::SetPrototype(isolate(), empty_function_map, object_function_prototype);
873 map = Map::CopyInitialMapNormalized(isolate(), map);
874 Map::SetPrototype(isolate(), map, factory->null_value());
878 map = Map::Copy(isolate(), map, "slow_object_with_object_prototype_map");
879 Map::SetPrototype(isolate(), map, object_function_prototype);
886 Handle<Map> CreateNonConstructorMap(Isolate* isolate, Handle<Map> source_map,
889 Handle<Map> map = Map::Copy(isolate, source_map, reason);
903 Map::SetPrototype(isolate, map, prototype);
912 isolate()->object_function(), AllocationType::kOld);
914 InstallFunctionAtSymbol(isolate(), iterator_prototype,
923 isolate()->object_function(), AllocationType::kOld);
926 JSObject::ForceSetPrototype(isolate(), generator_object_prototype,
929 isolate()->object_function(), AllocationType::kOld);
930 JSObject::ForceSetPrototype(isolate(), generator_function_prototype, empty);
932 InstallToStringTag(isolate(), generator_function_prototype,
934 JSObject::AddProperty(isolate(), generator_function_prototype,
939 JSObject::AddProperty(isolate(), generator_object_prototype,
943 InstallToStringTag(isolate(), generator_object_prototype, "Generator");
944 SimpleInstallFunction(isolate(), generator_object_prototype, "next",
946 SimpleInstallFunction(isolate(), generator_object_prototype, "return",
948 SimpleInstallFunction(isolate(), generator_object_prototype, "throw",
954 SimpleCreateFunction(isolate(), factory()->next_string(),
963 SimpleCreateFunction(isolate(), factory()->next_string(),
970 SimpleCreateFunction(isolate(), factory()->empty_string(),
977 SimpleCreateFunction(isolate(), factory()->empty_string(),
990 map = CreateNonConstructorMap(isolate(), isolate()->strict_function_map(),
996 isolate(), isolate()->strict_function_with_name_map(),
1001 isolate());
1002 Handle<Map> generator_object_prototype_map = Map::Create(isolate(), 0);
1003 Map::SetPrototype(isolate(), generator_object_prototype_map,
1013 isolate()->object_function(), AllocationType::kOld);
1016 isolate(), async_iterator_prototype, factory()->async_iterator_symbol(),
1024 isolate()->object_function(), AllocationType::kOld);
1025 SimpleInstallFunction(isolate(), async_from_sync_iterator_prototype, "next",
1027 SimpleInstallFunction(isolate(), async_from_sync_iterator_prototype, "return",
1030 SimpleInstallFunction(isolate(), async_from_sync_iterator_prototype, "throw",
1034 InstallToStringTag(isolate(), async_from_sync_iterator_prototype,
1037 JSObject::ForceSetPrototype(isolate(), async_from_sync_iterator_prototype,
1042 Map::SetPrototype(isolate(), async_from_sync_iterator_map,
1049 isolate()->object_function(), AllocationType::kOld);
1051 isolate()->object_function(), AllocationType::kOld);
1054 JSObject::ForceSetPrototype(isolate(), async_generator_function_prototype,
1061 JSObject::AddProperty(isolate(), async_generator_function_prototype,
1065 JSObject::AddProperty(isolate(), async_generator_object_prototype,
1069 InstallToStringTag(isolate(), async_generator_function_prototype,
1073 JSObject::ForceSetPrototype(isolate(), async_generator_object_prototype,
1078 InstallToStringTag(isolate(), async_generator_object_prototype,
1080 SimpleInstallFunction(isolate(), async_generator_object_prototype, "next",
1082 SimpleInstallFunction(isolate(), async_generator_object_prototype, "return",
1084 SimpleInstallFunction(isolate(), async_generator_object_prototype, "throw",
1093 map = CreateNonConstructorMap(isolate(), isolate()->strict_function_map(),
1099 isolate(), isolate()->strict_function_with_name_map(),
1104 isolate());
1105 Handle<Map> async_generator_object_prototype_map = Map::Create(isolate(), 0);
1106 Map::SetPrototype(isolate(), async_generator_object_prototype_map,
1115 isolate()->object_function(), AllocationType::kOld);
1116 JSObject::ForceSetPrototype(isolate(), async_function_prototype, empty);
1118 InstallToStringTag(isolate(), async_function_prototype, "AsyncFunction");
1121 Map::Copy(isolate(), isolate()->strict_function_without_prototype_map(),
1123 Map::SetPrototype(isolate(), map, async_function_prototype);
1126 map = Map::Copy(isolate(), isolate()->method_with_name_map(),
1128 Map::SetPrototype(isolate(), map, async_function_prototype);
1160 Descriptor d = Descriptor::DataField(isolate(), factory()->proxy_string(),
1163 map->AppendDescriptor(isolate(), &d);
1167 isolate(), factory()->revoke_string(),
1169 map->AppendDescriptor(isolate(), &d);
1172 Map::SetPrototype(isolate(), map, isolate()->initial_object_prototype());
1180 void ReplaceAccessors(Isolate* isolate, Handle<Map> map, Handle<String> name,
1183 DescriptorArray descriptors = map->instance_descriptors(isolate);
1184 InternalIndex entry = descriptors.SearchWithCache(isolate, *name, *map);
1189 void InitializeJSArrayMaps(Isolate* isolate, Handle<Context> native_context,
1206 isolate, ConcurrencyMode::kSynchronous);
1208 new_map = handle(maybe_elements_transition, isolate);
1210 new_map = Map::CopyAsElementsKind(isolate, current_map, next_kind,
1228 Handle<Map> map(empty->map(), isolate());
1229 ReplaceAccessors(isolate(), map, factory()->arguments_string(), rw_attribs,
1231 ReplaceAccessors(isolate(), map, factory()->caller_string(), rw_attribs,
1235 static void AddToWeakNativeContextList(Isolate* isolate, Context context) {
1237 Heap* heap = isolate->heap();
1240 DCHECK(context.next_context_link().IsUndefined(isolate));
1243 !current.IsUndefined(isolate);
1261 AddToWeakNativeContextList(isolate(), *native_context());
1262 isolate()->set_context(*native_context());
1266 Handle<TemplateList> list = TemplateList::New(isolate(), 1);
1273 native_context()->script_context_table(), isolate());
1275 ReadOnlyRoots(isolate()).global_this_binding_scope_info_handle();
1285 ScriptContextTable::Extend(isolate(), script_contexts, context);
1314 FunctionTemplateInfo::cast(data->constructor()), isolate());
1316 isolate());
1317 if (!proto_template->IsUndefined(isolate())) {
1326 factory()->NewFunctionPrototype(isolate()->object_function());
1328 isolate(), name, Builtin::kIllegal, prototype, JS_GLOBAL_OBJECT_TYPE,
1331 LookupIterator it(isolate(), prototype, factory()->constructor_string(),
1335 DCHECK_EQ(*isolate()->object_function(), *value);
1340 isolate());
1342 isolate(), isolate()->native_context(), js_global_object_constructor,
1358 isolate(), name, Builtin::kIllegal, factory()->the_hole_value(),
1365 FunctionTemplateInfo::cast(data->constructor()), isolate());
1367 isolate(), isolate()->native_context(), global_constructor,
1388 .IsUndefined(isolate()) ||
1399 native_context()->global_proxy_function(), isolate());
1402 JSObject::cast(native_context()->global_object()), isolate());
1403 JSObject::ForceSetPrototype(isolate(), global_proxy, global_object);
1410 JSGlobalObject::cast(native_context()->extension()), isolate());
1423 static void InstallWithIntrinsicDefaultProto(Isolate* isolate,
1426 Handle<Smi> index(Smi::FromInt(context_index), isolate);
1427 JSObject::AddProperty(isolate, function,
1428 isolate->factory()->native_context_index_symbol(),
1430 isolate->native_context()->set(context_index, *function, UPDATE_WRITE_BARRIER,
1434 static void InstallError(Isolate* isolate, Handle<JSObject> global,
1439 Factory* factory = isolate->factory();
1450 isolate, global, name, JS_ERROR_TYPE, kErrorObjectSize,
1456 SimpleInstallFunction(isolate, error_fun, "captureStackTrace",
1460 InstallWithIntrinsicDefaultProto(isolate, error_fun, context_index);
1465 isolate);
1467 JSObject::AddProperty(isolate, prototype, factory->name_string(), name,
1469 JSObject::AddProperty(isolate, prototype, factory->message_string(),
1474 SimpleInstallFunction(isolate, prototype, "toString",
1476 isolate->native_context()->set_error_to_string(*to_string_fun);
1477 isolate->native_context()->set_initial_error_prototype(*prototype);
1479 Handle<JSFunction> global_error = isolate->error_function();
1480 CHECK(JSReceiver::SetPrototype(isolate, error_fun, global_error, false,
1483 CHECK(JSReceiver::SetPrototype(isolate, prototype,
1484 handle(global_error->prototype(), isolate),
1490 Handle<Map> initial_map(error_fun->initial_map(), isolate);
1491 Map::EnsureDescriptorSlack(isolate, initial_map, 1);
1495 Descriptor d = Descriptor::AccessorConstant(handle(info->name(), isolate),
1497 initial_map->AppendDescriptor(isolate, &d);
1656 Handle<JSObject> global(native_context()->global_object(), isolate());
1723 Handle<Map> initial_map(array_function->initial_map(), isolate());
1737 initial_map->AppendDescriptor(isolate(), &d);
1871 native_context()->initial_iterator_prototype(), isolate());
1875 JSObject::ForceSetPrototype(isolate(), array_iterator_prototype,
2023 native_context()->string_function().initial_map(), isolate());
2033 string_map->AppendDescriptor(isolate(), &d);
2120 SimpleInstallFunction(isolate(), prototype, "replaceAll",
2186 native_context()->initial_iterator_prototype(), isolate());
2190 JSObject::ForceSetPrototype(isolate(), string_iterator_prototype,
2253 isolate());
2294 isolate());
2450 JSObject::cast(promise_fun->instance_prototype()), isolate());
2467 Handle<Map> prototype_map(prototype->map(), isolate());
2492 JSObject::cast(regexp_fun->instance_prototype()), isolate());
2510 SimpleInstallGetter(isolate(), prototype, factory->hasIndices_string(),
2575 Handle<Map> prototype_map(prototype->map(), isolate());
2647 Handle<Map> initial_map(regexp_fun->initial_map(), isolate());
2656 Descriptor d = Descriptor::DataField(isolate(), factory->lastIndex_string(),
2659 initial_map->AppendDescriptor(isolate(), &d);
2674 native_context()->initial_iterator_prototype(), isolate());
2677 isolate()->object_function(), AllocationType::kOld);
2678 JSObject::ForceSetPrototype(isolate(), regexp_string_iterator_prototype,
2681 InstallToStringTag(isolate(), regexp_string_iterator_prototype,
2684 SimpleInstallFunction(isolate(), regexp_string_iterator_prototype, "next",
2688 isolate(), "RegExpStringIterator", JS_REG_EXP_STRING_ITERATOR_TYPE,
2856 SimpleInstallFunction(isolate(), intl, "getCanonicalLocales",
2859 SimpleInstallFunction(isolate(), intl, "supportedValuesOf",
2874 isolate(), date_time_format_constructor, "supportedLocalesOf",
2912 SimpleInstallFunction(isolate(), number_format_constructor,
2940 SimpleInstallFunction(isolate(), collator_constructor,
3003 SimpleInstallFunction(isolate(), plural_rules_constructor,
3022 isolate(), intl, "RelativeTimeFormat", JS_RELATIVE_TIME_FORMAT_TYPE,
3032 isolate(), relative_time_format_fun, "supportedLocalesOf",
3038 isolate());
3040 InstallToStringTag(isolate(), prototype, "Intl.RelativeTimeFormat");
3043 isolate(), prototype, "resolvedOptions",
3045 SimpleInstallFunction(isolate(), prototype, "format",
3048 SimpleInstallFunction(isolate(), prototype, "formatToParts",
3055 isolate(), intl, "ListFormat", JS_LIST_FORMAT_TYPE,
3063 SimpleInstallFunction(isolate(), list_format_fun, "supportedLocalesOf",
3068 JSObject::cast(list_format_fun->instance_prototype()), isolate());
3070 InstallToStringTag(isolate(), prototype, "Intl.ListFormat");
3072 SimpleInstallFunction(isolate(), prototype, "resolvedOptions",
3075 SimpleInstallFunction(isolate(), prototype, "format",
3077 SimpleInstallFunction(isolate(), prototype, "formatToParts",
3084 isolate(), intl, "Locale", JS_LOCALE_TYPE, JSLocale::kHeaderSize, 0,
3086 InstallWithIntrinsicDefaultProto(isolate(), locale_fun,
3093 JSObject::cast(locale_fun->instance_prototype()), isolate());
3095 InstallToStringTag(isolate(), prototype, "Intl.Locale");
3097 SimpleInstallFunction(isolate(), prototype, "toString",
3099 SimpleInstallFunction(isolate(), prototype, "maximize",
3101 SimpleInstallFunction(isolate(), prototype, "minimize",
3104 SimpleInstallGetter(isolate(), prototype, factory->language_string(),
3106 SimpleInstallGetter(isolate(), prototype, factory->script_string(),
3108 SimpleInstallGetter(isolate(), prototype, factory->region_string(),
3110 SimpleInstallGetter(isolate(), prototype, factory->baseName_string(),
3113 SimpleInstallGetter(isolate(), prototype, factory->calendar_string(),
3115 SimpleInstallGetter(isolate(), prototype, factory->caseFirst_string(),
3117 SimpleInstallGetter(isolate(), prototype, factory->collation_string(),
3119 SimpleInstallGetter(isolate(), prototype, factory->hourCycle_string(),
3121 SimpleInstallGetter(isolate(), prototype, factory->numeric_string(),
3123 SimpleInstallGetter(isolate(), prototype,
3128 SimpleInstallGetter(isolate(), prototype, factory->calendars_string(),
3130 SimpleInstallGetter(isolate(), prototype, factory->collations_string(),
3132 SimpleInstallGetter(isolate(), prototype, factory->hourCycles_string(),
3134 SimpleInstallGetter(isolate(), prototype,
3137 SimpleInstallGetter(isolate(), prototype, factory->textInfo_string(),
3139 SimpleInstallGetter(isolate(), prototype, factory->timeZones_string(),
3141 SimpleInstallGetter(isolate(), prototype, factory->weekInfo_string(),
3147 isolate(), intl, "DisplayNames", JS_DISPLAY_NAMES_TYPE,
3153 isolate(), display_names_fun,
3156 SimpleInstallFunction(isolate(), display_names_fun, "supportedLocalesOf",
3162 JSObject::cast(display_names_fun->instance_prototype()), isolate());
3164 InstallToStringTag(isolate(), prototype, "Intl.DisplayNames");
3166 SimpleInstallFunction(isolate(), prototype, "resolvedOptions",
3170 SimpleInstallFunction(isolate(), prototype, "of",
3177 isolate(), intl, "Segmenter", JS_SEGMENTER_TYPE,
3184 SimpleInstallFunction(isolate(), segmenter_fun, "supportedLocalesOf",
3189 JSObject::cast(segmenter_fun->instance_prototype()), isolate());
3196 InstallToStringTag(isolate(), prototype, "Intl.Segmenter");
3197 SimpleInstallFunction(isolate(), prototype, "resolvedOptions",
3200 SimpleInstallFunction(isolate(), prototype, "segment",
3206 isolate()->object_function(), AllocationType::kOld);
3208 Name::ToFunctionName(isolate(), factory->Segments_string())
3211 isolate(), name_string, JS_SEGMENTS_TYPE, JSSegments::kHeaderSize,
3216 SimpleInstallFunction(isolate(), prototype, "containing",
3222 Handle<Map> segments_map(segments_fun->initial_map(), isolate());
3228 native_context()->initial_iterator_prototype(), isolate());
3230 isolate()->object_function(), AllocationType::kOld);
3231 JSObject::ForceSetPrototype(isolate(), prototype, iterator_prototype);
3238 InstallToStringTag(isolate(), prototype, "Segmenter String Iterator");
3239 SimpleInstallFunction(isolate(), prototype, "next",
3243 Name::ToFunctionName(isolate(), factory->SegmentIterator_string())
3246 isolate(), name_string, JS_SEGMENT_ITERATOR_TYPE,
3250 isolate());
3309 SimpleInstallFunction(isolate(), atomics_object, "waitAsync",
3332 JSObject::cast(typed_array_fun->instance_prototype()), isolate());
3434 JSObject::cast(data_view_fun->instance_prototype()), isolate());
3502 isolate());
3601 isolate());
3654 Map::SetPrototype(isolate(), map, isolate_->factory()->null_value());
3662 Descriptor::DataField(isolate(), factory->to_string_tag_symbol(),
3665 map->AppendDescriptor(isolate(), &d);
3679 map = Map::CopyWithField(isolate(), map, factory->value_string(),
3680 FieldType::Any(isolate()), NONE,
3686 map = Map::CopyWithField(isolate(), map, factory->done_string(),
3687 FieldType::Any(isolate()), NONE,
3708 isolate());
3747 isolate());
3778 isolate(), name, proxy_function_map, Builtin::kProxyConstructor);
3842 Map::SetPrototype(isolate(), map, empty_function);
3855 map->AppendDescriptor(isolate(), &d);
3865 map->AppendDescriptor(isolate(), &d);
3888 isolate());
3921 JSObject::cast(weak_ref_fun->instance_prototype()), isolate());
3932 isolate(), arguments_string, Builtin::kIllegal,
3933 isolate()->initial_object_prototype(), JS_ARGUMENTS_OBJECT_TYPE,
3935 Handle<Map> map(function->initial_map(), isolate());
3942 Descriptor::DataField(isolate(), factory->length_string(),
3945 map->AppendDescriptor(isolate(), &d);
3949 Descriptor::DataField(isolate(), factory->callee_string(),
3952 map->AppendDescriptor(isolate(), &d);
3997 Descriptor::DataField(isolate(), factory->length_string(),
4000 map->AppendDescriptor(isolate(), &d);
4005 map->AppendDescriptor(isolate(), &d);
4011 Map::SetPrototype(isolate(), map, isolate_->initial_object_prototype());
4053 Handle<JSObject>(native_context()->global_object(), isolate());
4055 Handle<JSObject> typed_array_prototype = isolate()->typed_array_prototype();
4056 Handle<JSFunction> typed_array_function = isolate()->typed_array_function();
4059 isolate(), global, name, JS_TYPED_ARRAY_TYPE,
4067 CHECK(JSObject::SetPrototype(isolate(), result, typed_array_function, false,
4072 Smi::FromInt(1 << ElementsKindToShiftSize(elements_kind)), isolate());
4074 InstallConstant(isolate(), result, "BYTES_PER_ELEMENT", bytes_per_element);
4083 Handle<JSObject> prototype(JSObject::cast(result->prototype()), isolate());
4085 CHECK(JSObject::SetPrototype(isolate(), prototype, typed_array_prototype,
4093 InstallConstant(isolate(), prototype, "BYTES_PER_ELEMENT", bytes_per_element);
4104 Map::SetPrototype(isolate(), rab_gsab_initial_map, prototype);
4122 bool Genesis::CompileExtension(Isolate* isolate, v8::Extension* extension) {
4123 Factory* factory = isolate->factory();
4124 HandleScope scope(isolate);
4128 isolate->factory()
4136 SourceCodeCache* cache = isolate->bootstrapper()->extensions_cache();
4137 Handle<Context> context(isolate->context(), isolate);
4140 if (!cache->Lookup(isolate, name, &function_info)) {
4145 isolate, source, ScriptDetails(script_name), extension,
4148 cache->Add(isolate, name, function_info);
4155 Factory::JSFunctionBuilder{isolate, function_info, context}.Build();
4159 Handle<Object> receiver = isolate->global_object();
4161 isolate->factory()->empty_fixed_array();
4162 return !Execution::TryCallScript(isolate, fun, receiver, host_defined_options,
4169 Isolate* isolate = isolate_;
4170 Factory* factory = isolate->factory();
4171 HandleScope scope(isolate);
4172 Handle<NativeContext> native_context = isolate->native_context();
4174 native_context->initial_iterator_prototype(), isolate);
4177 PrototypeIterator iter(isolate, native_context->generator_function_map());
4179 isolate);
4181 isolate, "GeneratorFunction", JS_FUNCTION_TYPE,
4189 isolate, generator_function_function,
4192 JSObject::ForceSetPrototype(isolate, generator_function_function,
4193 isolate->function_function());
4195 isolate, generator_function_prototype, factory->constructor_string(),
4204 PrototypeIterator iter(isolate,
4207 iter.GetCurrent<JSObject>(), isolate);
4210 isolate, "AsyncGeneratorFunction", JS_FUNCTION_TYPE,
4218 isolate, async_generator_function_function,
4221 JSObject::ForceSetPrototype(isolate, async_generator_function_function,
4222 isolate->function_function());
4225 isolate, async_generator_function_prototype,
4236 factory->NewJSObject(isolate->object_function(), AllocationType::kOld);
4237 JSObject::ForceSetPrototype(isolate, prototype, iterator_prototype);
4239 InstallToStringTag(isolate, prototype, factory->SetIterator_string());
4242 InstallFunctionWithBuiltinId(isolate, prototype, "next",
4251 isolate, "SetIterator", JS_SET_VALUE_ITERATOR_TYPE,
4256 isolate);
4260 isolate, set_value_iterator_map, "JS_SET_KEY_VALUE_ITERATOR_TYPE");
4269 factory->NewJSObject(isolate->object_function(), AllocationType::kOld);
4270 JSObject::ForceSetPrototype(isolate, prototype, iterator_prototype);
4272 InstallToStringTag(isolate, prototype, factory->MapIterator_string());
4275 InstallFunctionWithBuiltinId(isolate, prototype, "next",
4284 isolate, "MapIterator", JS_MAP_KEY_ITERATOR_TYPE,
4289 isolate);
4293 isolate, map_key_iterator_map, "JS_MAP_KEY_VALUE_ITERATOR_TYPE");
4299 Map::Copy(isolate, map_key_iterator_map, "JS_MAP_VALUE_ITERATOR_TYPE");
4306 PrototypeIterator iter(isolate, native_context->async_function_map());
4308 isolate);
4311 isolate, "AsyncFunction", JS_FUNCTION_TYPE,
4319 isolate, async_function_constructor,
4323 JSObject::ForceSetPrototype(isolate, async_function_constructor,
4324 isolate->function_function());
4327 isolate, async_function_prototype, factory->constructor_string(),
4347 Factory* factory = isolate()->factory();
4348 HandleScope scope(isolate());
4357 isolate(), "CallSite", JS_OBJECT_TYPE, JSObject::kHeaderSize, 0,
4360 isolate()->native_context()->set_callsite_function(*callsite_fun);
4364 isolate());
4402 SimpleInstallFunction(isolate(), prototype, info.name, info.id, 0, true,
4408 HandleScope scope(isolate());
4415 Handle<JSGlobalObject> global(context->global_object(), isolate());
4421 Factory::JSFunctionBuilder{isolate(), info, context}.Build();
4498 Factory* factory = isolate()->factory();
4501 Handle<JSGlobalObject> global(native_context()->global_object(), isolate());
4511 JSObject::cast(shadow_realm_fun->instance_prototype()), isolate());
4527 isolate());
4528 Map::SetPrototype(isolate(), map, empty_function);
4540 map->AppendDescriptor(isolate(), &d);
4550 map->AppendDescriptor(isolate(), &d);
4560 Handle<JSGlobalObject> global(native_context()->global_object(), isolate());
4562 isolate()->factory()->InternalizeUtf8String("SharedStructType");
4564 isolate(), name, isolate()->strict_function_with_readonly_prototype_map(),
4567 isolate());
4571 JSObject::AddProperty(isolate(), global, "SharedStructType",
4580 isolate());
4582 JSObject::cast(array_function->instance_prototype()), isolate());
4590 JSObject::GetProperty(isolate(), array_prototype,
4591 isolate()->factory()->unscopables_symbol())
4600 isolate());
4612 isolate());
4614 JSObject::cast(array_function->instance_prototype()), isolate());
4622 JSObject::GetProperty(isolate(), array_prototype,
4623 isolate()->factory()->unscopables_symbol())
4644 Handle<JSGlobalObject> global(native_context()->global_object(), isolate());
4647 isolate()->shared_array_buffer_fun(), DONT_ENUM);
4653 Handle<JSGlobalObject> global(native_context()->global_object(), isolate());
4656 isolate()->atomics_object(), DONT_ENUM);
4657 InstallToStringTag(isolate_, isolate()->atomics_object(), "Atomics");
4664 isolate()->js_finalization_registry_fun();
4667 isolate());
4669 JSObject::AddProperty(isolate(), finalization_registry_prototype,
4671 isolate()->finalization_registry_cleanup_some(),
4678 Handle<JSFunction> regexp_fun(native_context()->regexp_function(), isolate());
4680 JSObject::cast(regexp_fun->instance_prototype()), isolate());
4681 SimpleInstallGetter(isolate(), regexp_prototype,
4682 isolate()->factory()->linear_string(),
4694 isolate());
4696 JSObject::cast(array_function->instance_prototype()), isolate());
4698 SimpleInstallFunction(isolate(), array_prototype, "at",
4702 JSReceiver::GetProperty(isolate(), array_prototype,
4705 InstallTrueValuedProperty(isolate(), unscopables, "at");
4710 isolate());
4712 JSObject::cast(string_function->instance_prototype()), isolate());
4714 SimpleInstallFunction(isolate(), string_prototype, "at",
4720 native_context()->typed_array_function(), isolate());
4722 JSObject::cast(typed_array_function->instance_prototype()), isolate());
4724 SimpleInstallFunction(isolate(), typed_array_prototype, "at",
4733 isolate());
4734 SimpleInstallGetter(isolate(), array_buffer_prototype,
4737 SimpleInstallGetter(isolate(), array_buffer_prototype,
4740 SimpleInstallFunction(isolate(), array_buffer_prototype, "resize",
4746 isolate());
4747 SimpleInstallGetter(isolate(), shared_array_buffer_prototype,
4751 SimpleInstallGetter(isolate(), shared_array_buffer_prototype,
4754 SimpleInstallFunction(isolate(), shared_array_buffer_prototype, "grow",
4764 Handle<JSGlobalObject> global(native_context()->global_object(), isolate());
4793 SimpleInstallFunction(isolate(), now, #p, Builtin::kTemporalNow##N, n, false);
4801 isolate(), temporal, #N, JS_TEMPORAL_##U##_TYPE, \
4809 isolate()); \
4810 InstallToStringTag(isolate(), prototype, "Temporal." #N);
4813 SimpleInstallFunction(isolate(), obj_func, #name, Builtin::kTemporal##T##N, \
4848 SimpleInstallGetter(isolate(), prototype, isolate_->factory()->p##_string(), \
4875 SimpleInstallFunction(isolate(), prototype, #p, \
4883 SimpleInstallFunction(isolate(), prototype, "toLocaleString", \
4889 SimpleInstallFunction(isolate(), prototype, "toLocaleString", \
4912 SimpleInstallGetter(isolate(), prototype, isolate_->factory()->p##_string(), \
4935 SimpleInstallFunction(isolate(), prototype, #p, \
4981 SimpleInstallGetter(isolate(), prototype, isolate_->factory()->p##_string(), \
5011 SimpleInstallFunction(isolate(), prototype, #p, \
5066 SimpleInstallGetter(isolate(), prototype, isolate_->factory()->p##_string(), \
5099 SimpleInstallFunction(isolate(), prototype, #p, \
5130 SimpleInstallGetter(isolate(), prototype, isolate_->factory()->p##_string(), \
5150 SimpleInstallFunction(isolate(), prototype, #p, \
5179 SimpleInstallGetter(isolate(), prototype, isolate_->factory()->p##_string(), \
5200 SimpleInstallFunction(isolate(), prototype, #p, \
5235 SimpleInstallGetter(isolate(), prototype, isolate_->factory()->p##_string(), \
5257 SimpleInstallFunction(isolate(), prototype, #p, \
5279 SimpleInstallGetter(isolate(), prototype, isolate_->factory()->p##_string(), \
5296 SimpleInstallFunction(isolate(), prototype, #p, \
5313 SimpleInstallGetter(isolate(), prototype, factory()->id_string(),
5328 SimpleInstallFunction(isolate(), prototype, #p, \
5341 SimpleInstallGetter(isolate(), prototype, factory()->id_string(),
5377 SimpleInstallFunction(isolate(), prototype, #p, \
5415 isolate(),
5416 Handle<JSReceiver>(native_context()->global_object(), isolate()),
5423 isolate(), Handle<JSReceiver>(JSReceiver::cast(*intl), isolate()),
5428 JSObject::cast(number_format_constructor->prototype()), isolate());
5430 SimpleInstallFunction(isolate(), prototype, "formatRange",
5432 SimpleInstallFunction(isolate(), prototype, "formatRangeToParts",
5439 isolate(), Handle<JSReceiver>(JSReceiver::cast(*intl), isolate()),
5444 JSObject::cast(plural_rules_constructor->prototype()), isolate());
5446 SimpleInstallFunction(isolate(), prototype, "selectRange",
5458 isolate()->object_function(), AllocationType::kOld);
5459 InstallToStringTag(isolate(), prototype, name);
5463 CreateFunction(isolate(), name, JS_ARRAY_BUFFER_TYPE,
5470 JSObject::AddProperty(isolate(), prototype, factory()->constructor_string(),
5475 InstallFunctionWithBuiltinId(isolate(), array_buffer_fun, "isView",
5479 SimpleInstallGetter(isolate(), prototype, factory()->byte_length_string(),
5481 SimpleInstallFunction(isolate(), prototype, "slice",
5487 SimpleInstallGetter(isolate(), prototype, factory()->byte_length_string(),
5490 SimpleInstallFunction(isolate(), prototype, "slice",
5503 HandleScope scope(isolate());
5506 isolate()->factory()->NewFixedArrayWithHoles(
5512 isolate(), ApiNatives::kInitialFunctionCacheSize);
5516 auto wasm_debug_maps = isolate()->factory()->empty_fixed_array();
5523 isolate());
5535 isolate());
5543 handle(native_context()->global_object(), isolate());
5546 InstallFunctionWithBuiltinId(isolate(), global_object, "decodeURI",
5550 InstallFunctionWithBuiltinId(isolate(), global_object, "decodeURIComponent",
5554 InstallFunctionWithBuiltinId(isolate(), global_object, "encodeURI",
5558 InstallFunctionWithBuiltinId(isolate(), global_object, "encodeURIComponent",
5562 InstallFunctionWithBuiltinId(isolate(), global_object, "escape",
5566 InstallFunctionWithBuiltinId(isolate(), global_object, "unescape",
5572 isolate(), global_object, "eval", Builtin::kGlobalEval, 1, false);
5577 InstallFunctionWithBuiltinId(isolate(), global_object, "isFinite",
5581 InstallFunctionWithBuiltinId(isolate(), global_object, "isNaN",
5587 isolate());
5589 isolate());
5609 Map::EnsureDescriptorSlack(isolate(), map, 4);
5613 Descriptor::DataField(isolate(), factory()->get_string(),
5616 map->AppendDescriptor(isolate(), &d);
5620 Descriptor::DataField(isolate(), factory()->set_string(),
5623 map->AppendDescriptor(isolate(), &d);
5627 Descriptor::DataField(isolate(), factory()->enumerable_string(),
5630 map->AppendDescriptor(isolate(), &d);
5634 isolate(), factory()->configurable_string(),
5637 map->AppendDescriptor(isolate(), &d);
5640 Map::SetPrototype(isolate(), map, isolate()->initial_object_prototype());
5655 Map::EnsureDescriptorSlack(isolate(), map, 4);
5659 Descriptor::DataField(isolate(), factory()->value_string(),
5662 map->AppendDescriptor(isolate(), &d);
5666 Descriptor::DataField(isolate(), factory()->writable_string(),
5669 map->AppendDescriptor(isolate(), &d);
5673 Descriptor::DataField(isolate(), factory()->enumerable_string(),
5676 map->AppendDescriptor(isolate(), &d);
5680 Descriptor::DataField(isolate(), factory()->configurable_string(),
5683 map->AppendDescriptor(isolate(), &d);
5686 Map::SetPrototype(isolate(), map, isolate()->initial_object_prototype());
5703 Descriptor d = Descriptor::DataField(isolate(), factory()->index_string(),
5706 initial_map->AppendDescriptor(isolate(), &d);
5711 Descriptor d = Descriptor::DataField(isolate(), factory()->input_string(),
5714 initial_map->AppendDescriptor(isolate(), &d);
5720 isolate(), factory()->groups_string(), JSRegExpResult::kGroupsIndex,
5722 initial_map->AppendDescriptor(isolate(), &d);
5733 isolate(), factory()->regexp_result_names_symbol(),
5735 initial_map->AppendDescriptor(isolate(), &d);
5741 isolate(), factory()->regexp_result_regexp_input_symbol(),
5744 initial_map->AppendDescriptor(isolate(), &d);
5750 isolate(), factory()->regexp_result_regexp_last_index_symbol(),
5753 initial_map->AppendDescriptor(isolate(), &d);
5759 Map::Copy(isolate(), initial_map, "JSRegExpResult with indices");
5768 Descriptor::DataField(isolate(), factory()->indices_string(),
5771 Map::EnsureDescriptorSlack(isolate(), initial_with_indices_map, 1);
5772 initial_with_indices_map->AppendDescriptor(isolate(), &d);
5791 isolate(), factory()->groups_string(),
5793 initial_map->AppendDescriptor(isolate(), &d);
5809 Handle<Map> map(native_context()->sloppy_arguments_map(), isolate());
5810 Map::EnsureDescriptorSlack(isolate(), map, 1);
5811 map->AppendDescriptor(isolate(), &d);
5817 isolate());
5818 Map::EnsureDescriptorSlack(isolate(), map, 1);
5819 map->AppendDescriptor(isolate(), &d);
5825 isolate());
5826 Map::EnsureDescriptorSlack(isolate(), map, 1);
5827 map->AppendDescriptor(isolate(), &d);
5832 Handle<Map> map(native_context()->strict_arguments_map(), isolate());
5833 Map::EnsureDescriptorSlack(isolate(), map, 1);
5834 map->AppendDescriptor(isolate(), &d);
5839 OrderedHashSet::Allocate(isolate(), 0).ToHandleChecked();
5847 HandleScope scope(isolate());
5852 SimpleInstallFunction(isolate(), extras_binding, "isTraceCategoryEnabled",
5856 SimpleInstallFunction(isolate(), extras_binding, "trace", Builtin::kTrace, 5,
5868 Handle<NormalizedMapCache> cache = NormalizedMapCache::New(isolate());
5895 bool Genesis::InstallSpecialObjects(Isolate* isolate,
5897 HandleScope scope(isolate);
5899 Handle<JSObject> Error = isolate->error_function();
5900 Handle<String> name = isolate->factory()->stackTraceLimit_string();
5901 Handle<Smi> stack_trace_limit(Smi::FromInt(FLAG_stack_trace_limit), isolate);
5902 JSObject::AddProperty(isolate, Error, name, stack_trace_limit, NONE);
5906 // Install the internal data structures into the isolate and expose on
5908 WasmJs::Install(isolate, true);
5912 WasmJs::Install(isolate, false);
5941 bool Genesis::InstallExtensions(Isolate* isolate,
5945 return InstallAutoExtensions(isolate, &extension_states) &&
5947 InstallExtension(isolate, "v8/gc", &extension_states)) &&
5949 InstallExtension(isolate, "v8/externalize", &extension_states)) &&
5951 InstallExtension(isolate, "v8/statistics", &extension_states)) &&
5953 InstallExtension(isolate, "v8/trigger-failure", &extension_states)) &&
5955 InstallExtension(isolate, "v8/ignition-statistics",
5958 InstallExtension(isolate, "v8/cpumark", &extension_states)) &&
5961 InstallExtension(isolate, "v8/vtunedomain", &extension_states)) &&
5963 InstallRequestedExtensions(isolate, extensions, &extension_states);
5966 bool Genesis::InstallAutoExtensions(Isolate* isolate,
5971 !InstallExtension(isolate, it, extension_states)) {
5978 bool Genesis::InstallRequestedExtensions(Isolate* isolate,
5982 if (!InstallExtension(isolate, *it, extension_states)) return false;
5989 bool Genesis::InstallExtension(Isolate* isolate, const char* name,
5994 return InstallExtension(isolate, it, extension_states);
6001 bool Genesis::InstallExtension(Isolate* isolate,
6004 HandleScope scope(isolate);
6018 if (!InstallExtension(isolate, extension->dependencies()[i],
6023 if (!CompileExtension(isolate, extension)) {
6024 // If this failed, it either threw an exception, or the isolate is
6026 DCHECK(isolate->has_pending_exception() ||
6027 (isolate->has_scheduled_exception() &&
6028 isolate->scheduled_exception() ==
6029 ReadOnlyRoots(isolate).termination_exception()));
6030 if (isolate->has_pending_exception()) {
6033 // the line number at which this happened to the console in the isolate
6037 isolate->clear_pending_exception();
6042 DCHECK(!isolate->has_pending_exception() &&
6043 !isolate->has_scheduled_exception());
6050 Handle<JSObject> global_proxy(native_context()->global_proxy(), isolate());
6051 Handle<JSObject> global_object(native_context()->global_object(), isolate());
6062 isolate());
6063 if (!proxy_constructor->GetPrototypeTemplate().IsUndefined(isolate())) {
6066 isolate());
6071 JSObject::ForceSetPrototype(isolate(), global_proxy, global_object);
6089 DCHECK(isolate()->has_pending_exception());
6090 isolate()->clear_pending_exception();
6097 static bool PropertyAlreadyExists(Isolate* isolate, Handle<JSObject> to,
6099 LookupIterator it(isolate, to, key, LookupIterator::OWN_SKIP_INTERCEPTOR);
6113 from->map().instance_descriptors(isolate()), isolate());
6118 HandleScope inner(isolate());
6119 Handle<Name> key = Handle<Name>(descs->GetKey(i), isolate());
6121 if (PropertyAlreadyExists(isolate(), to, key)) continue;
6124 isolate(), from, details.representation(), index);
6125 JSObject::AddProperty(isolate(), to, key, value,
6135 Handle<Name> key(descs->GetKey(i), isolate());
6137 if (PropertyAlreadyExists(isolate(), to, key)) continue;
6138 HandleScope inner(isolate());
6141 Handle<Object> value(descs->GetStrongValue(i), isolate());
6150 JSGlobalObject::cast(*from).global_dictionary(kAcquireLoad), isolate());
6152 GlobalDictionary::IterationIndices(isolate(), properties);
6155 Handle<PropertyCell> cell(properties->CellAt(index), isolate());
6156 Handle<Name> key(cell->name(), isolate());
6158 if (PropertyAlreadyExists(isolate(), to, key)) continue;
6160 Handle<Object> value(cell->value(), isolate());
6161 if (value->IsTheHole(isolate())) continue;
6164 JSObject::AddProperty(isolate(), to, key, value, details.attributes());
6177 from->property_dictionary_swiss(), isolate());
6178 ReadOnlyRoots roots(isolate());
6184 Handle<Name> key(Name::cast(raw_key), isolate());
6186 if (PropertyAlreadyExists(isolate(), to, key)) continue;
6189 Handle<Object>(properties->ValueAt(entry), isolate());
6191 DCHECK(!value->IsTheHole(isolate()));
6194 JSObject::AddProperty(isolate(), to, key, value, details.attributes());
6199 Handle<NameDictionary>(from->property_dictionary(), isolate());
6201 NameDictionary::IterationIndices(isolate(), properties);
6202 ReadOnlyRoots roots(isolate());
6208 Handle<Name> key(Name::cast(raw_key), isolate());
6210 if (PropertyAlreadyExists(isolate(), to, key)) continue;
6213 Handle<Object>(properties->ValueAt(key_index), isolate());
6215 DCHECK(!value->IsTheHole(isolate()));
6218 JSObject::AddProperty(isolate(), to, key, value, details.attributes());
6227 Handle<FixedArray>(FixedArray::cast(from->elements()), isolate());
6233 HandleScope outer(isolate());
6242 Handle<HeapObject> proto(from->map().prototype(), isolate());
6243 JSObject::ForceSetPrototype(isolate(), to, proto);
6250 isolate());
6252 isolate());
6261 Map::SetPrototype(isolate(), initial_map, array_prototype);
6265 Map::EnsureDescriptorSlack(isolate(), initial_map,
6272 array_function.initial_map().instance_descriptors(isolate()),
6273 isolate());
6276 isolate(), *length, array_function.initial_map());
6279 length, handle(array_descriptors->GetStrongValue(old), isolate()),
6281 initial_map->AppendDescriptor(isolate(), &d);
6287 Isolate* isolate, MaybeHandle<JSGlobalProxy> maybe_global_proxy,
6292 : isolate_(isolate), active_(isolate->bootstrapper()) {
6293 RCS_SCOPE(isolate, RuntimeCallCounterId::kGenesis);
6299 SaveContext saved_context(isolate);
6311 Object size = isolate->heap()->serialized_global_proxy_sizes().get(
6321 isolate->factory()->NewUninitializedJSGlobalProxy(instance_size);
6324 // We can only de-serialize a context if the isolate was initialized from
6328 if (isolate->initialized_from_snapshot()) {
6330 if (Snapshot::NewContextFromSnapshot(isolate, global_proxy,
6339 AddToWeakNativeContextList(isolate, *native_context());
6340 isolate->set_context(*native_context());
6341 isolate->counters()->contexts_created_by_snapshot()->Increment();
6366 MathRandom::InitializeContext(isolate, native_context());
6385 isolate->counters()->contexts_created_from_scratch()->Increment();
6394 isolate, microtask_queue ? static_cast<MicrotaskQueue*>(microtask_queue)
6395 : isolate->default_microtask_queue());
6400 if (!isolate->serializer_enabled()) {
6406 isolate);
6416 ReadOnlyRoots(isolate).false_value());
6420 if (isolate->debug()->is_active()) {
6421 isolate->debug()->InstallDebugBreakTrampoline();
6428 Genesis::Genesis(Isolate* isolate,
6431 : isolate_(isolate), active_(isolate->bootstrapper()) {
6437 SaveContext saved_context(isolate);
6451 FunctionTemplateInfo::cast(global_proxy_data->constructor()), isolate);
6455 isolate);
6463 Handle<Map> global_proxy_map = isolate->factory()->NewMap(
6472 JSObject::ForceSetPrototype(isolate, global_proxy, global_object);