diff --git a/deps/v8/include/v8-version.h b/deps/v8/include/v8-version.h index f16596a58fa667..e769d42101e818 100644 --- a/deps/v8/include/v8-version.h +++ b/deps/v8/include/v8-version.h @@ -11,7 +11,7 @@ #define V8_MAJOR_VERSION 12 #define V8_MINOR_VERSION 4 #define V8_BUILD_NUMBER 254 -#define V8_PATCH_LEVEL 14 +#define V8_PATCH_LEVEL 17 // Use 1 for candidates and 0 otherwise. // (Boolean macro values are not supported by all preprocessors.) diff --git a/deps/v8/infra/testing/builders.pyl b/deps/v8/infra/testing/builders.pyl index 2aca712ca73f8a..7655763cab411c 100644 --- a/deps/v8/infra/testing/builders.pyl +++ b/deps/v8/infra/testing/builders.pyl @@ -962,7 +962,7 @@ 'v8_mac64_asan_rel': { 'swarming_dimensions' : { 'cpu': 'x86-64', - 'os': 'Mac-13', + 'os': 'Mac-14', }, 'tests': [ {'name': 'v8testing', 'shards': 8}, @@ -971,7 +971,7 @@ 'v8_mac64_dbg': { 'swarming_dimensions' : { 'cpu': 'x86-64', - 'os': 'Mac-13', + 'os': 'Mac-14', }, 'tests': [ {'name': 'mozilla'}, @@ -984,7 +984,7 @@ 'v8_mac_arm64_gc_stress_dbg': { 'swarming_dimensions' : { 'cpu': 'arm64', - 'os': 'Mac-13', + 'os': 'Mac-14', }, 'tests': [ {'name': 'd8testing', 'test_args': ['--gc-stress'], 'shards': 3}, @@ -993,7 +993,7 @@ 'v8_mac64_noopt_dbg': { 'swarming_dimensions' : { 'cpu': 'x86-64', - 'os': 'Mac-13', + 'os': 'Mac-14', }, 'tests': [ {'name': 'v8testing', 'shards': 6}, @@ -1002,7 +1002,7 @@ 'v8_mac64_rel': { 'swarming_dimensions' : { 'cpu': 'x86-64', - 'os': 'Mac-13', + 'os': 'Mac-14', }, 'tests': [ {'name': 'mozilla'}, @@ -1015,7 +1015,7 @@ 'v8_mac_arm64_rel': { 'swarming_dimensions' : { 'cpu': 'arm64', - 'os': 'Mac-13', + 'os': 'Mac-14', 'pool': 'chromium.tests', }, 'tests': [ @@ -1031,7 +1031,7 @@ 'v8_mac_arm64_dbg': { 'swarming_dimensions' : { 'cpu': 'arm64', - 'os': 'Mac-13', + 'os': 'Mac-14', 'pool': 'chromium.tests', }, 'tests': [ @@ -1047,7 +1047,7 @@ 'v8_mac_arm64_full_dbg': { 'swarming_dimensions' : { 'cpu': 'arm64', - 'os': 'Mac-13', + 'os': 'Mac-14', 'pool': 'chromium.tests', }, 'tests': [ @@ -1063,7 +1063,7 @@ 'v8_mac_arm64_no_pointer_compression_dbg': { 'swarming_dimensions' : { 'cpu': 'arm64', - 'os': 'Mac-13', + 'os': 'Mac-14', 'pool': 'chromium.tests', }, 'tests': [ @@ -1848,7 +1848,7 @@ 'V8 Mac64': { 'swarming_dimensions': { 'cpu': 'x86-64', - 'os': 'Mac-13', + 'os': 'Mac-14', }, 'tests': [ {'name': 'mozilla'}, @@ -1861,7 +1861,7 @@ 'V8 Mac64 - debug': { 'swarming_dimensions': { 'cpu': 'x86-64', - 'os': 'Mac-13', + 'os': 'Mac-14', }, 'tests': [ {'name': 'mozilla'}, @@ -1874,7 +1874,7 @@ 'V8 Mac64 ASAN': { 'swarming_dimensions': { 'cpu': 'x86-64', - 'os': 'Mac-13', + 'os': 'Mac-14', }, 'tests': [ {'name': 'v8testing', 'shards': 10}, @@ -1883,7 +1883,7 @@ 'V8 Mac - arm64 - gc stress': { 'swarming_dimensions': { 'cpu': 'arm64', - 'os': 'Mac-13', + 'os': 'Mac-14', }, 'tests': [ {'name': 'd8testing', 'test_args': ['--gc-stress'], 'shards': 3}, @@ -1891,7 +1891,7 @@ }, 'V8 Mac - arm64': { 'swarming_dimensions' : { - 'os': 'Mac-13', + 'os': 'Mac-14', 'cpu': 'arm64', 'pool': 'chromium.tests', }, @@ -1908,7 +1908,7 @@ }, 'V8 Mac - arm64 - release': { 'swarming_dimensions' : { - 'os': 'Mac-13', + 'os': 'Mac-14', 'cpu': 'arm64', 'pool': 'chromium.tests', }, @@ -1925,7 +1925,7 @@ }, 'V8 Mac - arm64 - debug': { 'swarming_dimensions' : { - 'os': 'Mac-13', + 'os': 'Mac-14', 'cpu': 'arm64', 'pool': 'chromium.tests', }, @@ -1943,7 +1943,7 @@ 'V8 Mac - arm64 - no pointer compression debug': { 'swarming_dimensions' : { 'cpu': 'arm64', - 'os': 'Mac-13', + 'os': 'Mac-14', 'pool': 'chromium.tests', }, 'tests': [ diff --git a/deps/v8/src/compiler/access-info.cc b/deps/v8/src/compiler/access-info.cc index 7cff878839c85c..9d022ba402d7bf 100644 --- a/deps/v8/src/compiler/access-info.cc +++ b/deps/v8/src/compiler/access-info.cc @@ -526,6 +526,14 @@ PropertyAccessInfo AccessorAccessInfoHelper( Cell::cast(module_namespace->module()->exports()->Lookup( isolate, name.object(), Smi::ToInt(Object::GetHash(*name.object()))))); + if (IsAnyStore(access_mode)) { + // ES#sec-module-namespace-exotic-objects-set-p-v-receiver + // ES#sec-module-namespace-exotic-objects-defineownproperty-p-desc + // + // Storing to a module namespace object is always an error or a no-op in + // JS. + return PropertyAccessInfo::Invalid(zone); + } if (IsTheHole(cell->value(kRelaxedLoad), isolate)) { // This module has not been fully initialized yet. return PropertyAccessInfo::Invalid(zone); diff --git a/deps/v8/src/maglev/maglev-graph-builder.cc b/deps/v8/src/maglev/maglev-graph-builder.cc index 73ead492da3ee5..efcdd6d2028a5e 100644 --- a/deps/v8/src/maglev/maglev-graph-builder.cc +++ b/deps/v8/src/maglev/maglev-graph-builder.cc @@ -4001,19 +4001,28 @@ ReduceResult MaglevGraphBuilder::TryBuildPropertyStore( access_info.holder().value()); } - if (access_info.IsFastAccessorConstant()) { - return TryBuildPropertySetterCall(access_info, receiver, - GetAccumulatorTagged()); - } else { - DCHECK(access_info.IsDataField() || access_info.IsFastDataConstant()); - ReduceResult res = TryBuildStoreField(access_info, receiver, access_mode); - if (res.IsDone()) { - RecordKnownProperty(receiver, name, - current_interpreter_frame_.accumulator(), - AccessInfoGuaranteedConst(access_info), access_mode); - return res; + switch (access_info.kind()) { + case compiler::PropertyAccessInfo::kFastAccessorConstant: + return TryBuildPropertySetterCall(access_info, receiver, + GetAccumulatorTagged()); + case compiler::PropertyAccessInfo::kDataField: + case compiler::PropertyAccessInfo::kFastDataConstant: { + ReduceResult res = TryBuildStoreField(access_info, receiver, access_mode); + if (res.IsDone()) { + RecordKnownProperty( + receiver, name, current_interpreter_frame_.accumulator(), + AccessInfoGuaranteedConst(access_info), access_mode); + return res; + } + return ReduceResult::Fail(); } - return ReduceResult::Fail(); + case compiler::PropertyAccessInfo::kInvalid: + case compiler::PropertyAccessInfo::kNotFound: + case compiler::PropertyAccessInfo::kDictionaryProtoDataConstant: + case compiler::PropertyAccessInfo::kDictionaryProtoAccessorConstant: + case compiler::PropertyAccessInfo::kModuleExport: + case compiler::PropertyAccessInfo::kStringLength: + UNREACHABLE(); } } diff --git a/deps/v8/src/objects/js-objects.cc b/deps/v8/src/objects/js-objects.cc index e5a03dff14835e..2f3ab484cdc010 100644 --- a/deps/v8/src/objects/js-objects.cc +++ b/deps/v8/src/objects/js-objects.cc @@ -432,9 +432,7 @@ Maybe JSReceiver::SetOrCopyDataProperties( Nothing()); if (!from->HasFastProperties() && target->HasFastProperties() && - !IsJSGlobalProxy(*target)) { - // JSProxy is always in slow-mode. - DCHECK(!IsJSProxy(*target)); + IsJSObject(*target) && !IsJSGlobalProxy(*target)) { // Convert to slow properties if we're guaranteed to overflow the number of // descriptors. int source_length;