| Index: src/bootstrapper.cc
|
| diff --git a/src/bootstrapper.cc b/src/bootstrapper.cc
|
| index 3c00a5e09867d442b67526e32da5b6bfea3360ed..6a9013577819ca68bce74915a3b5709534c45d36 100644
|
| --- a/src/bootstrapper.cc
|
| +++ b/src/bootstrapper.cc
|
| @@ -353,15 +353,6 @@ Handle<JSGlobalProxy> Bootstrapper::NewRemoteContext(
|
| return scope.CloseAndEscape(global_proxy);
|
| }
|
|
|
| -static void SetObjectPrototype(Handle<JSObject> object, Handle<Object> proto) {
|
| - // object.__proto__ = proto;
|
| - Handle<Map> old_map = Handle<Map>(object->map());
|
| - Handle<Map> new_map = Map::Copy(old_map, "SetObjectPrototype");
|
| - Map::SetPrototype(new_map, proto, FAST_PROTOTYPE);
|
| - JSObject::MigrateToMap(object, new_map);
|
| -}
|
| -
|
| -
|
| void Bootstrapper::DetachGlobal(Handle<Context> env) {
|
| env->GetIsolate()->counters()->errors_thrown_per_context()->AddSample(
|
| env->GetErrorsThrown());
|
| @@ -369,7 +360,7 @@ void Bootstrapper::DetachGlobal(Handle<Context> env) {
|
| Factory* factory = env->GetIsolate()->factory();
|
| Handle<JSGlobalProxy> global_proxy(JSGlobalProxy::cast(env->global_proxy()));
|
| global_proxy->set_native_context(*factory->null_value());
|
| - SetObjectPrototype(global_proxy, factory->null_value());
|
| + JSObject::ForceSetPrototype(global_proxy, factory->null_value());
|
| global_proxy->map()->SetConstructor(*factory->null_value());
|
| if (FLAG_track_detached_contexts) {
|
| env->GetIsolate()->AddDetachedContext(env);
|
| @@ -803,10 +794,10 @@ void Genesis::CreateIteratorMaps(Handle<JSFunction> empty) {
|
| factory()->NewJSObject(isolate()->object_function(), TENURED);
|
| native_context()->set_initial_generator_prototype(
|
| *generator_object_prototype);
|
| - SetObjectPrototype(generator_object_prototype, iterator_prototype);
|
| + JSObject::ForceSetPrototype(generator_object_prototype, iterator_prototype);
|
| Handle<JSObject> generator_function_prototype =
|
| factory()->NewJSObject(isolate()->object_function(), TENURED);
|
| - SetObjectPrototype(generator_function_prototype, empty);
|
| + JSObject::ForceSetPrototype(generator_function_prototype, empty);
|
|
|
| JSObject::AddProperty(
|
| generator_function_prototype, factory()->to_string_tag_symbol(),
|
| @@ -865,7 +856,7 @@ void Genesis::CreateAsyncFunctionMaps(Handle<JSFunction> empty) {
|
| // %AsyncFunctionPrototype% intrinsic
|
| Handle<JSObject> async_function_prototype =
|
| factory()->NewJSObject(isolate()->object_function(), TENURED);
|
| - SetObjectPrototype(async_function_prototype, empty);
|
| + JSObject::ForceSetPrototype(async_function_prototype, empty);
|
|
|
| JSObject::AddProperty(async_function_prototype,
|
| factory()->to_string_tag_symbol(),
|
| @@ -2522,8 +2513,8 @@ void Bootstrapper::ExportFromRuntime(Isolate* isolate,
|
| isolate, generator_function_function,
|
| Context::GENERATOR_FUNCTION_FUNCTION_INDEX);
|
|
|
| - SetObjectPrototype(generator_function_function,
|
| - isolate->function_function());
|
| + JSObject::ForceSetPrototype(generator_function_function,
|
| + isolate->function_function());
|
| JSObject::AddProperty(
|
| generator_function_prototype, factory->constructor_string(),
|
| generator_function_function,
|
| @@ -2538,7 +2529,7 @@ void Bootstrapper::ExportFromRuntime(Isolate* isolate,
|
| { // -- S e t I t e r a t o r
|
| Handle<JSObject> set_iterator_prototype =
|
| isolate->factory()->NewJSObject(isolate->object_function(), TENURED);
|
| - SetObjectPrototype(set_iterator_prototype, iterator_prototype);
|
| + JSObject::ForceSetPrototype(set_iterator_prototype, iterator_prototype);
|
| Handle<JSFunction> set_iterator_function = InstallFunction(
|
| container, "SetIterator", JS_SET_ITERATOR_TYPE, JSSetIterator::kSize,
|
| set_iterator_prototype, Builtins::kIllegal);
|
| @@ -2548,7 +2539,7 @@ void Bootstrapper::ExportFromRuntime(Isolate* isolate,
|
| { // -- M a p I t e r a t o r
|
| Handle<JSObject> map_iterator_prototype =
|
| isolate->factory()->NewJSObject(isolate->object_function(), TENURED);
|
| - SetObjectPrototype(map_iterator_prototype, iterator_prototype);
|
| + JSObject::ForceSetPrototype(map_iterator_prototype, iterator_prototype);
|
| Handle<JSFunction> map_iterator_function = InstallFunction(
|
| container, "MapIterator", JS_MAP_ITERATOR_TYPE, JSMapIterator::kSize,
|
| map_iterator_prototype, Builtins::kIllegal);
|
| @@ -2717,8 +2708,8 @@ void Bootstrapper::ExportFromRuntime(Isolate* isolate,
|
| async_function_constructor->shared()->set_length(1);
|
| InstallWithIntrinsicDefaultProto(isolate, async_function_constructor,
|
| Context::ASYNC_FUNCTION_FUNCTION_INDEX);
|
| - SetObjectPrototype(async_function_constructor,
|
| - isolate->function_function());
|
| + JSObject::ForceSetPrototype(async_function_constructor,
|
| + isolate->function_function());
|
|
|
| JSObject::AddProperty(
|
| async_function_prototype, factory->constructor_string(),
|
| @@ -3702,7 +3693,7 @@ bool Genesis::ConfigureGlobalObjects(
|
| }
|
| }
|
|
|
| - SetObjectPrototype(global_proxy, global_object);
|
| + JSObject::ForceSetPrototype(global_proxy, global_object);
|
|
|
| native_context()->set_initial_array_prototype(
|
| JSArray::cast(native_context()->array_function()->prototype()));
|
| @@ -3856,7 +3847,7 @@ void Genesis::TransferObject(Handle<JSObject> from, Handle<JSObject> to) {
|
|
|
| // Transfer the prototype (new map is needed).
|
| Handle<Object> proto(from->map()->prototype(), isolate());
|
| - SetObjectPrototype(to, proto);
|
| + JSObject::ForceSetPrototype(to, proto);
|
| }
|
|
|
|
|
| @@ -4073,7 +4064,7 @@ Genesis::Genesis(Isolate* isolate,
|
| global_proxy->set_native_context(*factory()->null_value());
|
|
|
| // DetachGlobal.
|
| - SetObjectPrototype(global_proxy, factory()->null_value());
|
| + JSObject::ForceSetPrototype(global_proxy, factory()->null_value());
|
|
|
| global_proxy_ = global_proxy;
|
| }
|
|
|