Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

deps: patch V8 to 11.8.172.17 #50292

Merged
merged 1 commit into from
Oct 31, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion deps/v8/include/v8-version.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 11,7 @@
#define V8_MAJOR_VERSION 11
#define V8_MINOR_VERSION 8
#define V8_BUILD_NUMBER 172
#define V8_PATCH_LEVEL 15
#define V8_PATCH_LEVEL 17

// Use 1 for candidates and 0 otherwise.
// (Boolean macro values are not supported by all preprocessors.)
Expand Down
38 changes: 17 additions & 21 deletions deps/v8/infra/mb/mb_config.pyl
Original file line number Diff line number Diff line change
Expand Up @@ -579,7 579,7 @@
'release_x64_gcmole': [
'release_bot', 'x64', 'gcmole'],
'release_x64_msvc': [
'release_bot_no_goma', 'x64', 'minimal_symbols', 'msvc'],
'release_bot_no_reclient', 'x64', 'minimal_symbols', 'msvc'],
'release_x64_correctness_fuzzer' : [
'release_bot', 'x64', 'v8_correctness_fuzzer'],
'release_x64_disable_runtime_call_stats': [
Expand All @@ -589,7 589,7 @@
'release_x64_fuchsia_trybot': [
'release_trybot', 'x64', 'fuchsia'],
'release_x64_gcc': [
'release_bot_no_goma', 'x64', 'gcc', 'lld', 'no_custom_libcxx'],
'release_bot_no_reclient', 'x64', 'gcc', 'lld', 'no_custom_libcxx'],
'release_x64_ios_simulator': [
'release_bot', 'x64', 'ios_simulator'],
'release_x64_internal': [
Expand Down Expand Up @@ -648,7 648,7 @@
'debug_x64_asan': [
'debug_bot', 'x64', 'asan', 'lsan'],
'debug_x64_asan_no_lsan_static': [
'debug', 'static', 'goma', 'v8_enable_slow_dchecks', 'v8_optimized_debug',
'debug', 'static', 'reclient', 'v8_enable_slow_dchecks', 'v8_optimized_debug',
'x64', 'asan'],
'debug_x64_conservative_stack_scanning': [
'debug_bot', 'x64', 'conservative_stack_scanning'],
Expand All @@ -661,7 661,7 @@
'debug_x64_fuchsia': [
'debug_bot', 'x64', 'fuchsia'],
'debug_x64_gcc': [
'debug_bot_no_goma', 'x64', 'gcc', 'lld', 'no_custom_libcxx'],
'debug_bot_no_reclient', 'x64', 'gcc', 'lld', 'no_custom_libcxx'],
'debug_x64_header_includes': [
'debug_bot', 'x64', 'v8_check_header_includes'],
'debug_x64_no_shared_cage': [
Expand Down Expand Up @@ -696,15 696,15 @@
'debug_x86_minimal_symbols': [
'debug_bot', 'x86', 'minimal_symbols'],
'debug_x86_msvc': [
'debug_bot_no_goma', 'x86', 'minimal_symbols', 'msvc'],
'debug_bot_no_reclient', 'x86', 'minimal_symbols', 'msvc'],
'debug_x86_no_i18n': [
'debug_bot', 'x86', 'v8_no_i18n'],
'debug_x86_trybot': [
'debug_trybot', 'x86'],
'debug_x86_vtunejit': [
'debug_bot', 'x86', 'v8_enable_vtunejit'],
'full_debug_x86': [
'debug', 'x86', 'goma', 'v8_enable_slow_dchecks', 'v8_full_debug'],
'debug', 'x86', 'reclient', 'v8_enable_slow_dchecks', 'v8_full_debug'],

# Release configs for x86.
'release_x86': [
Expand All @@ -725,7 725,7 @@
'release_x64_predictable': [
'release_bot', 'x64', 'v8_enable_verify_predictable'],
'release_x86_shared_verify_heap': [
'release', 'x86', 'goma', 'shared', 'v8_verify_heap'],
'release', 'x86', 'reclient', 'shared', 'v8_verify_heap'],
'release_x86_trybot': [
'release_trybot', 'x86'],
'release_x86_verify_csa': [
Expand Down Expand Up @@ -813,19 813,19 @@

'debug_bot_no_slow_dchecks': {
'mixins': [
'debug', 'shared', 'goma', 'v8_disable_slow_dchecks',
'debug', 'shared', 'reclient', 'v8_disable_slow_dchecks',
'v8_optimized_debug', 'v8_enable_google_benchmark'],
},

'debug_bot': {
'mixins': [
'debug', 'shared', 'goma', 'v8_enable_slow_dchecks',
'debug', 'shared', 'reclient', 'v8_enable_slow_dchecks',
'v8_optimized_debug', 'v8_enable_google_benchmark'],
},

'debug_bot_no_goma': {
'debug_bot_no_reclient': {
'mixins': [
'debug', 'shared', 'no_goma', 'v8_enable_slow_dchecks',
'debug', 'shared', 'no_reclient', 'v8_enable_slow_dchecks',
'v8_optimized_debug'],
},

Expand Down Expand Up @@ -867,10 867,6 @@
'gn_args': 'v8_gcmole=true',
},

'goma': {
'gn_args': 'use_goma=true',
},

'hard_float': {
'gn_args': 'arm_float_abi="hard"',
},
Expand Down Expand Up @@ -910,8 906,8 @@
'gn_args': 'use_custom_libcxx=false',
},

'no_goma': {
'gn_args': 'use_goma=false',
'no_reclient': {
'gn_args': 'use_remoteexec=false',
},

'no_sandbox': {
Expand All @@ -935,15 931,15 @@
},

'release_bot': {
'mixins': ['release', 'static', 'goma', 'v8_enable_google_benchmark'],
'mixins': ['release', 'static', 'reclient', 'v8_enable_google_benchmark'],
},

'release_bot_no_goma': {
'mixins': ['release', 'static', 'no_goma'],
'release_bot_no_reclient': {
'mixins': ['release', 'static', 'no_reclient'],
},

'release_bot_reclient': {
'mixins': ['release', 'static', 'no_goma', 'reclient'],
'mixins': ['release', 'static', 'reclient'],
},

'release_trybot': {
Expand Down
12 changes: 6 additions & 6 deletions deps/v8/src/objects/js-function.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1083,13 1083,13 @@ MaybeHandle<Map> JSFunction::GetDerivedMap(Isolate* isolate,
isolate);
prototype = handle(realm_constructor->prototype(), isolate);
}
CHECK(IsJSReceiver(*prototype));
DCHECK_EQ(constructor_initial_map->constructor_or_back_pointer(),
*constructor);

Handle<Map> map = Map::TransitionToDerivedMap(
isolate, constructor_initial_map, Handle<HeapObject>::cast(prototype));
DCHECK_EQ(map->constructor_or_back_pointer(), *constructor);
Handle<Map> map = Map::CopyInitialMap(isolate, constructor_initial_map);
map->set_new_target_is_base(false);
CHECK(IsJSReceiver(*prototype));
if (map->prototype() != *prototype)
Map::SetPrototype(isolate, map, Handle<HeapObject>::cast(prototype));
map->SetConstructor(*constructor);
return map;
}

Expand Down
24 changes: 3 additions & 21 deletions deps/v8/src/objects/map.cc
Original file line number Diff line number Diff line change
Expand Up @@ -2344,31 2344,13 @@ void Map::StartInobjectSlackTracking() {

Handle<Map> Map::TransitionToPrototype(Isolate* isolate, Handle<Map> map,
Handle<HeapObject> prototype) {
Handle<Map> new_map = TransitionsAccessor::GetPrototypeTransition(
isolate, map, prototype, map->new_target_is_base());
Handle<Map> new_map =
TransitionsAccessor::GetPrototypeTransition(isolate, map, prototype);
if (new_map.is_null()) {
new_map = Copy(isolate, map, "TransitionToPrototype");
TransitionsAccessor::PutPrototypeTransition(isolate, map, prototype,
new_map);
if (*prototype != map->prototype()) {
Map::SetPrototype(isolate, new_map, prototype);
}
}
return new_map;
}

Handle<Map> Map::TransitionToDerivedMap(Isolate* isolate, Handle<Map> map,
Handle<HeapObject> prototype) {
Handle<Map> new_map = TransitionsAccessor::GetPrototypeTransition(
isolate, map, prototype, /* new_target_is_base */ false);
if (new_map.is_null()) {
new_map = CopyInitialMap(isolate, map);
TransitionsAccessor::PutPrototypeTransition(isolate, map, prototype,
new_map);
if (*prototype != map->prototype()) {
Map::SetPrototype(isolate, new_map, prototype);
}
new_map->set_new_target_is_base(false);
Map::SetPrototype(isolate, new_map, prototype);
}
return new_map;
}
Expand Down
3 changes: 0 additions & 3 deletions deps/v8/src/objects/map.h
Original file line number Diff line number Diff line change
Expand Up @@ -863,9 863,6 @@ class Map : public TorqueGeneratedMap<Map, HeapObject> {
V8_EXPORT_PRIVATE static Handle<Map> TransitionToPrototype(
Isolate* isolate, Handle<Map> map, Handle<HeapObject> prototype);

V8_EXPORT_PRIVATE static Handle<Map> TransitionToDerivedMap(
Isolate* isolate, Handle<Map> map, Handle<HeapObject> prototype);

static Handle<Map> TransitionToImmutableProto(Isolate* isolate,
Handle<Map> map);

Expand Down
6 changes: 2 additions & 4 deletions deps/v8/src/objects/transitions.cc
Original file line number Diff line number Diff line change
Expand Up @@ -443,8 443,7 @@ void TransitionsAccessor::PutPrototypeTransition(Isolate* isolate,

// static
Handle<Map> TransitionsAccessor::GetPrototypeTransition(
Isolate* isolate, Handle<Map> map, Handle<Object> prototype_handle,
bool new_target_is_base) {
Isolate* isolate, Handle<Map> map, Handle<Object> prototype_handle) {
DisallowGarbageCollection no_gc;
Object prototype = *prototype_handle;
Tagged<WeakFixedArray> cache = GetPrototypeTransitions(isolate, map);
Expand All @@ -456,8 455,7 @@ Handle<Map> TransitionsAccessor::GetPrototypeTransition(
Tagged<HeapObject> heap_object;
if (target.GetHeapObjectIfWeak(&heap_object)) {
Tagged<Map> target_map = Map::cast(heap_object);
if (target_map->prototype() == prototype &&
target_map->new_target_is_base() == new_target_is_base) {
if (target_map->prototype() == prototype) {
return handle(target_map, isolate);
}
}
Expand Down
19 changes: 9 additions & 10 deletions deps/v8/src/objects/transitions.h
Original file line number Diff line number Diff line change
Expand Up @@ -124,20 124,19 @@ class V8_EXPORT_PRIVATE TransitionsAccessor {
}

// ===== PROTOTYPE TRANSITIONS =====
// When you set the prototype of an object using the __proto__ accessor, or if
// an unrelated new.target is passed to a constructor you need a new map for
// the object (the prototype is stored in the map). In order not to multiply
// maps unnecessarily we store these as transitions in the original map. That
// way we can transition to the same map if the same prototype is set, rather
// than creating a new map every time. The transitions are in the form of a
// map where the keys are prototype objects and the values are the maps they
// transition to. PutPrototypeTransition can trigger GC.
// When you set the prototype of an object using the __proto__ accessor you
// need a new map for the object (the prototype is stored in the map). In
// order not to multiply maps unnecessarily we store these as transitions in
// the original map. That way we can transition to the same map if the same
// prototype is set, rather than creating a new map every time. The
// transitions are in the form of a map where the keys are prototype objects
// and the values are the maps they transition to.
// PutPrototypeTransition can trigger GC.
static void PutPrototypeTransition(Isolate* isolate, Handle<Map>,
Handle<Object> prototype,
Handle<Map> target_map);
static Handle<Map> GetPrototypeTransition(Isolate* isolate, Handle<Map> map,
Handle<Object> prototype,
bool new_target_is_base);
Handle<Object> prototype);

// During the first-time Map::Update and Map::TryUpdate, the migration target
// map could be cached in the raw_transitions slot of the old map that is
Expand Down
31 changes: 0 additions & 31 deletions deps/v8/test/mjsunit/regress/regress-reflect-construct.js

This file was deleted.