diff --git a/deps/v8/include/v8-version.h b/deps/v8/include/v8-version.h index 213d8805b86087..30a4182357505d 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 61fa46e94dfd41..30cab3ae26ac38 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 de5ae539093257..c20d33511a1c1f 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 7031ba50dbdb4c..42ed60c7ef644b 100755 --- a/deps/v8/tools/mb/mb.py +++ b/deps/v8/tools/mb/mb.py @@ -53,6 +53,25 @@ def cmp(x, y): # pylint: disable=redefined-builtin 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 @@ def ConfigFromArgs(self): 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' %