diff options
author | Michaƫl Zasso <targos@protonmail.com> | 2021-09-14 15:17:57 +0200 |
---|---|---|
committer | Beth Griggs <bgriggs@redhat.com> | 2021-09-22 00:27:08 +0100 |
commit | 9c76c699720df354d2c6a3cb8c6cd9d2a9a3f5c4 (patch) | |
tree | fffbb2314dd59bc31884e6f80688f87beca9949a | |
parent | 588257c00a7dfef96582a72c55d1bc14a3c3db97 (diff) | |
download | node-new-9c76c699720df354d2c6a3cb8c6cd9d2a9a3f5c4.tar.gz |
deps: patch V8 to 9.3.345.19
Refs: https://github.com/v8/v8/compare/9.3.345.16...9.3.345.19
PR-URL: https://github.com/nodejs/node/pull/40108
Reviewed-By: Richard Lau <rlau@redhat.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
-rw-r--r-- | deps/v8/include/v8-version.h | 2 | ||||
-rw-r--r-- | deps/v8/src/compiler/js-native-context-specialization.cc | 18 | ||||
-rw-r--r-- | deps/v8/testing/gmock/BUILD.gn | 7 | ||||
-rwxr-xr-x | deps/v8/tools/mb/mb.py | 25 |
4 files changed, 32 insertions, 20 deletions
diff --git a/deps/v8/include/v8-version.h b/deps/v8/include/v8-version.h index 213d8805b8..30a4182357 100644 --- a/deps/v8/include/v8-version.h +++ b/deps/v8/include/v8-version.h @@ -11,7 +11,7 @@ #define V8_MAJOR_VERSION 9 #define V8_MINOR_VERSION 3 #define V8_BUILD_NUMBER 345 -#define V8_PATCH_LEVEL 16 +#define V8_PATCH_LEVEL 19 // Use 1 for candidates and 0 otherwise. // (Boolean macro values are not supported by all preprocessors.) diff --git a/deps/v8/src/compiler/js-native-context-specialization.cc b/deps/v8/src/compiler/js-native-context-specialization.cc index 61fa46e94d..30cab3ae26 100644 --- a/deps/v8/src/compiler/js-native-context-specialization.cc +++ b/deps/v8/src/compiler/js-native-context-specialization.cc @@ -825,6 +825,12 @@ Reduction JSNativeContextSpecialization::ReduceGlobalAccess( return NoChange(); } else if (property_cell_type == PropertyCellType::kUndefined) { return NoChange(); + } else if (property_cell_type == PropertyCellType::kConstantType) { + // We rely on stability further below. + if (property_cell_value.IsHeapObject() && + !property_cell_value.AsHeapObject().map().is_stable()) { + return NoChange(); + } } } else if (access_mode == AccessMode::kHas) { DCHECK_EQ(receiver, lookup_start_object); @@ -943,17 +949,7 @@ Reduction JSNativeContextSpecialization::ReduceGlobalAccess( if (property_cell_value.IsHeapObject()) { MapRef property_cell_value_map = property_cell_value.AsHeapObject().map(); - if (property_cell_value_map.is_stable()) { - dependencies()->DependOnStableMap(property_cell_value_map); - } else { - // The value's map is already unstable. If this store were to go - // through the C++ runtime, it would transition the PropertyCell to - // kMutable. We don't want to change the cell type from generated - // code (to simplify concurrent heap access), however, so we keep - // it as kConstantType and do the store anyways (if the new value's - // map matches). This is safe because it merely prolongs the limbo - // state that we are in already. - } + dependencies()->DependOnStableMap(property_cell_value_map); // Check that the {value} is a HeapObject. value = effect = graph()->NewNode(simplified()->CheckHeapObject(), diff --git a/deps/v8/testing/gmock/BUILD.gn b/deps/v8/testing/gmock/BUILD.gn index de5ae53909..c20d33511a 100644 --- a/deps/v8/testing/gmock/BUILD.gn +++ b/deps/v8/testing/gmock/BUILD.gn @@ -15,12 +15,7 @@ source_set("gmock") { "include/gmock/gmock-matchers.h", "include/gmock/gmock.h", ] - deps = [ "//third_party/googletest:gmock" ] - - public_configs = [ - "//third_party/googletest:gmock_config", - "//third_party/googletest:gtest_config", - ] + public_deps = [ "//third_party/googletest:gmock" ] } # The file/directory layout of Google Test is not yet considered stable. Until diff --git a/deps/v8/tools/mb/mb.py b/deps/v8/tools/mb/mb.py index 7031ba50db..42ed60c7ef 100755 --- a/deps/v8/tools/mb/mb.py +++ b/deps/v8/tools/mb/mb.py @@ -53,6 +53,25 @@ except NameError: # Python 3 return (x > y) - (x < y) +def _v8_builder_fallback(builder, builder_group): + """Fallback to V8 builder names before splitting builder/tester. + + This eases splitting builders and testers on release branches and + can be removed as soon as all builder have been split and all MB configs + exist on all branches. + """ + builders = [builder] + if builder.endswith(' - builder'): + builders.append(builder[:-len(' - builder')]) + elif builder.endswith(' builder'): + builders.append(builder[:-len(' builder')]) + + for builder in builders: + if builder in builder_group: + return builder_group[builder] + return None + + def main(args): mbw = MetaBuildWrapper() return mbw.Main(args) @@ -651,12 +670,14 @@ class MetaBuildWrapper(object): raise MBErr('Builder groups name "%s" not found in "%s"' % (self.args.builder_group, self.args.config_file)) - if not self.args.builder in self.builder_groups[self.args.builder_group]: + config = _v8_builder_fallback( + self.args.builder, self.builder_groups[self.args.builder_group]) + + if not config: raise MBErr( 'Builder name "%s" not found under builder_groups[%s] in "%s"' % (self.args.builder, self.args.builder_group, self.args.config_file)) - config = self.builder_groups[self.args.builder_group][self.args.builder] if isinstance(config, dict): if self.args.phase is None: raise MBErr('Must specify a build --phase for %s on %s' % |