Skip to content

Commit 9290feb

Browse files
mmarchiniBethGriggs
authored andcommitted
deps: patch V8 to 8.1.307.26
Refs: v8/v8@8.1.307.20...8.1.307.26 PR-URL: #32521 Reviewed-By: Anna Henningsen <[email protected]> Reviewed-By: Michaël Zasso <[email protected]> Reviewed-By: Colin Ihrig <[email protected]>
1 parent a9e4cec commit 9290feb

23 files changed

+358
-98
lines changed

deps/v8/include/v8-version.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
#define V8_MAJOR_VERSION 8
1212
#define V8_MINOR_VERSION 1
1313
#define V8_BUILD_NUMBER 307
14-
#define V8_PATCH_LEVEL 20
14+
#define V8_PATCH_LEVEL 26
1515

1616
// Use 1 for candidates and 0 otherwise.
1717
// (Boolean macro values are not supported by all preprocessors.)

deps/v8/infra/mb/mb_config.pyl

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,24 +164,34 @@
164164
'V8 Linux - s390x - sim': 'release_simulate_s390x',
165165
},
166166
'client.v8.branches': {
167+
'V8 Linux - previous branch': 'release_x86',
168+
'V8 Linux - previous branch - debug': 'debug_x86',
167169
'V8 Linux - beta branch': 'release_x86',
168170
'V8 Linux - beta branch - debug': 'debug_x86',
169171
'V8 Linux - stable branch': 'release_x86',
170172
'V8 Linux - stable branch - debug': 'debug_x86',
173+
'V8 Linux64 - previous branch': 'release_x64',
174+
'V8 Linux64 - previous branch - debug': 'debug_x64',
171175
'V8 Linux64 - beta branch': 'release_x64',
172176
'V8 Linux64 - beta branch - debug': 'debug_x64',
173177
'V8 Linux64 - stable branch': 'release_x64',
174178
'V8 Linux64 - stable branch - debug': 'debug_x64',
179+
'V8 arm - sim - previous branch': 'release_simulate_arm',
180+
'V8 arm - sim - previous branch - debug': 'debug_simulate_arm',
175181
'V8 arm - sim - beta branch': 'release_simulate_arm',
176182
'V8 arm - sim - beta branch - debug': 'debug_simulate_arm',
177183
'V8 arm - sim - stable branch': 'release_simulate_arm',
178184
'V8 arm - sim - stable branch - debug': 'debug_simulate_arm',
185+
'V8 mips64el - sim - previous branch': 'release_simulate_mips64el',
179186
'V8 mips64el - sim - beta branch': 'release_simulate_mips64el',
180187
'V8 mips64el - sim - stable branch': 'release_simulate_mips64el',
188+
'V8 mipsel - sim - previous branch': 'release_simulate_mipsel',
181189
'V8 mipsel - sim - beta branch': 'release_simulate_mipsel',
182190
'V8 mipsel - sim - stable branch': 'release_simulate_mipsel',
191+
'V8 ppc64 - sim - previous branch': 'release_simulate_ppc64',
183192
'V8 ppc64 - sim - beta branch': 'release_simulate_ppc64',
184193
'V8 ppc64 - sim - stable branch': 'release_simulate_ppc64',
194+
'V8 s390x - sim - previous branch': 'release_simulate_s390x',
185195
'V8 s390x - sim - beta branch': 'release_simulate_s390x',
186196
'V8 s390x - sim - stable branch': 'release_simulate_s390x',
187197
},

deps/v8/infra/testing/builders.pyl

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1686,6 +1686,26 @@
16861686
{'name': 'v8testing', 'shards': 3},
16871687
],
16881688
},
1689+
'V8 Linux - previous branch': {
1690+
'swarming_dimensions': {
1691+
'os': 'Ubuntu-16.04',
1692+
},
1693+
'tests': [
1694+
{'name': 'mozilla'},
1695+
{'name': 'test262', 'variant': 'default'},
1696+
{'name': 'v8testing'},
1697+
],
1698+
},
1699+
'V8 Linux - previous branch - debug': {
1700+
'swarming_dimensions': {
1701+
'os': 'Ubuntu-16.04',
1702+
},
1703+
'tests': [
1704+
{'name': 'mozilla'},
1705+
{'name': 'test262', 'variant': 'default'},
1706+
{'name': 'v8testing', 'shards': 3},
1707+
],
1708+
},
16891709
'V8 Linux64 - beta branch': {
16901710
'swarming_dimensions': {
16911711
'os': 'Ubuntu-16.04',
@@ -1726,6 +1746,26 @@
17261746
{'name': 'v8testing', 'shards': 3},
17271747
],
17281748
},
1749+
'V8 Linux64 - previous branch': {
1750+
'swarming_dimensions': {
1751+
'os': 'Ubuntu-16.04',
1752+
},
1753+
'tests': [
1754+
{'name': 'mozilla'},
1755+
{'name': 'test262', 'variant': 'default'},
1756+
{'name': 'v8testing'},
1757+
],
1758+
},
1759+
'V8 Linux64 - previous branch - debug': {
1760+
'swarming_dimensions': {
1761+
'os': 'Ubuntu-16.04',
1762+
},
1763+
'tests': [
1764+
{'name': 'mozilla'},
1765+
{'name': 'test262', 'variant': 'default'},
1766+
{'name': 'v8testing', 'shards': 3},
1767+
],
1768+
},
17291769
'V8 arm - sim - beta branch': {
17301770
'swarming_dimensions': {
17311771
'os': 'Ubuntu-16.04',
@@ -1766,6 +1806,26 @@
17661806
{'name': 'v8testing', 'shards': 10},
17671807
],
17681808
},
1809+
'V8 arm - sim - previous branch': {
1810+
'swarming_dimensions': {
1811+
'os': 'Ubuntu-16.04',
1812+
},
1813+
'tests': [
1814+
{'name': 'mozilla'},
1815+
{'name': 'test262', 'variant': 'default'},
1816+
{'name': 'v8testing', 'shards': 4},
1817+
],
1818+
},
1819+
'V8 arm - sim - previous branch - debug': {
1820+
'swarming_dimensions': {
1821+
'os': 'Ubuntu-16.04',
1822+
},
1823+
'tests': [
1824+
{'name': 'mozilla', 'shards': 2},
1825+
{'name': 'test262', 'variant': 'default', 'shards': 2},
1826+
{'name': 'v8testing', 'shards': 10},
1827+
],
1828+
},
17691829
'V8 mips64el - sim - beta branch': {
17701830
'swarming_dimensions': {
17711831
'os': 'Ubuntu-16.04',
@@ -1782,6 +1842,14 @@
17821842
{'name': 'unittests'},
17831843
],
17841844
},
1845+
'V8 mips64el - sim - previous branch': {
1846+
'swarming_dimensions': {
1847+
'os': 'Ubuntu-16.04',
1848+
},
1849+
'tests': [
1850+
{'name': 'unittests'},
1851+
],
1852+
},
17851853
'V8 mipsel - sim - beta branch': {
17861854
'swarming_dimensions': {
17871855
'os': 'Ubuntu-16.04',
@@ -1798,6 +1866,14 @@
17981866
{'name': 'v8testing', 'shards': 4},
17991867
],
18001868
},
1869+
'V8 mipsel - sim - previous branch': {
1870+
'swarming_dimensions': {
1871+
'os': 'Ubuntu-16.04',
1872+
},
1873+
'tests': [
1874+
{'name': 'v8testing', 'shards': 4},
1875+
],
1876+
},
18011877
'V8 ppc64 - sim - beta branch': {
18021878
'swarming_dimensions': {
18031879
'os': 'Ubuntu-16.04',
@@ -1814,6 +1890,14 @@
18141890
{'name': 'unittests'},
18151891
],
18161892
},
1893+
'V8 ppc64 - sim - previous branch': {
1894+
'swarming_dimensions': {
1895+
'os': 'Ubuntu-16.04',
1896+
},
1897+
'tests': [
1898+
{'name': 'unittests'},
1899+
],
1900+
},
18171901
'V8 s390x - sim - beta branch': {
18181902
'swarming_dimensions': {
18191903
'os': 'Ubuntu-16.04',
@@ -1830,4 +1914,12 @@
18301914
{'name': 'unittests'},
18311915
],
18321916
},
1917+
'V8 s390x - sim - previous branch': {
1918+
'swarming_dimensions': {
1919+
'os': 'Ubuntu-16.04',
1920+
},
1921+
'tests': [
1922+
{'name': 'unittests'},
1923+
],
1924+
},
18331925
}

deps/v8/src/builtins/builtins-intl.cc

Lines changed: 35 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -265,13 +265,11 @@ Object LegacyFormatConstructor(BuiltinArguments args, Isolate* isolate,
265265

266266
// [[Construct]]
267267
Handle<JSFunction> target = args.target();
268-
269268
Handle<Object> locales = args.atOrUndefined(isolate, 1);
270269
Handle<Object> options = args.atOrUndefined(isolate, 2);
271270

272271
// 2. Let format be ? OrdinaryCreateFromConstructor(newTarget,
273272
// "%<T>Prototype%", ...).
274-
275273
Handle<Map> map;
276274
ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
277275
isolate, map, JSFunction::GetDerivedMap(isolate, target, new_target));
@@ -281,45 +279,42 @@ Object LegacyFormatConstructor(BuiltinArguments args, Isolate* isolate,
281279
ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
282280
isolate, format, T::New(isolate, map, locales, options, method));
283281
// 4. Let this be the this value.
284-
Handle<Object> receiver = args.receiver();
285-
286-
// 5. If NewTarget is undefined and ? InstanceofOperator(this, %<T>%)
287-
// is true, then
288-
//
289-
// Look up the intrinsic value that has been stored on the context.
290-
// Call the instanceof function
291-
Handle<Object> is_instance_of_obj;
292-
ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
293-
isolate, is_instance_of_obj,
294-
Object::InstanceOf(isolate, receiver, constructor));
295-
296-
// Get the boolean value of the result
297-
bool is_instance_of = is_instance_of_obj->BooleanValue(isolate);
298-
299-
if (args.new_target()->IsUndefined(isolate) && is_instance_of) {
300-
if (!receiver->IsJSReceiver()) {
301-
THROW_NEW_ERROR_RETURN_FAILURE(
302-
isolate,
303-
NewTypeError(MessageTemplate::kIncompatibleMethodReceiver,
304-
isolate->factory()->NewStringFromAsciiChecked(method),
305-
receiver));
282+
if (args.new_target()->IsUndefined(isolate)) {
283+
Handle<Object> receiver = args.receiver();
284+
285+
// 5. If NewTarget is undefined and ? InstanceofOperator(this, %<T>%)
286+
// is true, then Look up the intrinsic value that has been stored on
287+
// the context.
288+
Handle<Object> is_instance_of_obj;
289+
ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
290+
isolate, is_instance_of_obj,
291+
Object::InstanceOf(isolate, receiver, constructor));
292+
293+
if (is_instance_of_obj->BooleanValue(isolate)) {
294+
if (!receiver->IsJSReceiver()) {
295+
THROW_NEW_ERROR_RETURN_FAILURE(
296+
isolate,
297+
NewTypeError(MessageTemplate::kIncompatibleMethodReceiver,
298+
isolate->factory()->NewStringFromAsciiChecked(method),
299+
receiver));
300+
}
301+
Handle<JSReceiver> rec = Handle<JSReceiver>::cast(receiver);
302+
// a. Perform ? DefinePropertyOrThrow(this,
303+
// %Intl%.[[FallbackSymbol]], PropertyDescriptor{ [[Value]]: format,
304+
// [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }).
305+
PropertyDescriptor desc;
306+
desc.set_value(format);
307+
desc.set_writable(false);
308+
desc.set_enumerable(false);
309+
desc.set_configurable(false);
310+
Maybe<bool> success = JSReceiver::DefineOwnProperty(
311+
isolate, rec, isolate->factory()->intl_fallback_symbol(), &desc,
312+
Just(kThrowOnError));
313+
MAYBE_RETURN(success, ReadOnlyRoots(isolate).exception());
314+
CHECK(success.FromJust());
315+
// b. b. Return this.
316+
return *receiver;
306317
}
307-
Handle<JSReceiver> rec = Handle<JSReceiver>::cast(receiver);
308-
// a. Perform ? DefinePropertyOrThrow(this,
309-
// %Intl%.[[FallbackSymbol]], PropertyDescriptor{ [[Value]]: format,
310-
// [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }).
311-
PropertyDescriptor desc;
312-
desc.set_value(format);
313-
desc.set_writable(false);
314-
desc.set_enumerable(false);
315-
desc.set_configurable(false);
316-
Maybe<bool> success = JSReceiver::DefineOwnProperty(
317-
isolate, rec, isolate->factory()->intl_fallback_symbol(), &desc,
318-
Just(kThrowOnError));
319-
MAYBE_RETURN(success, ReadOnlyRoots(isolate).exception());
320-
CHECK(success.FromJust());
321-
// b. b. Return this.
322-
return *receiver;
323318
}
324319
// 6. Return format.
325320
return *format;

deps/v8/src/compiler/simd-scalar-lowering.cc

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -909,29 +909,36 @@ void SimdScalarLowering::LowerNode(Node* node) {
909909
}
910910
case IrOpcode::kParameter: {
911911
DCHECK_EQ(1, node->InputCount());
912+
int param_count = static_cast<int>(signature()->parameter_count());
912913
// Only exchange the node if the parameter count actually changed. We do
913-
// not even have to do the default lowering because the the start node,
914+
// not even have to do the default lowering because the start node,
914915
// the only input of a parameter node, only changes if the parameter count
915916
// changes.
916-
if (GetParameterCountAfterLowering() !=
917-
static_cast<int>(signature()->parameter_count())) {
917+
if (GetParameterCountAfterLowering() != param_count) {
918918
int old_index = ParameterIndexOf(node->op());
919+
// Parameter index 0 is the instance parameter, we will use old_index to
920+
// index into the function signature, so we need to decrease it by 1.
921+
--old_index;
919922
int new_index =
920923
GetParameterIndexAfterLoweringSimd128(signature(), old_index);
921-
if (old_index == new_index) {
922-
NodeProperties::ChangeOp(node, common()->Parameter(new_index));
924+
// Similarly, the index into function signature needs to account for the
925+
// instance parameter, so increase it by 1.
926+
++new_index;
927+
NodeProperties::ChangeOp(node, common()->Parameter(new_index));
923928

929+
if (old_index < 0) {
930+
break;
931+
}
932+
933+
DCHECK(old_index < param_count);
934+
935+
if (signature()->GetParam(old_index) ==
936+
MachineRepresentation::kSimd128) {
924937
Node* new_node[kNumLanes32];
925-
for (int i = 0; i < kNumLanes32; ++i) {
926-
new_node[i] = nullptr;
927-
}
928938
new_node[0] = node;
929-
if (signature()->GetParam(old_index) ==
930-
MachineRepresentation::kSimd128) {
931-
for (int i = 1; i < kNumLanes32; ++i) {
932-
new_node[i] = graph()->NewNode(common()->Parameter(new_index + i),
933-
graph()->start());
934-
}
939+
for (int i = 1; i < kNumLanes32; ++i) {
940+
new_node[i] = graph()->NewNode(common()->Parameter(new_index + i),
941+
graph()->start());
935942
}
936943
ReplaceNode(node, new_node, kNumLanes32);
937944
}

deps/v8/src/compiler/wasm-compiler.cc

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6932,6 +6932,11 @@ wasm::WasmCompilationResult ExecuteTurbofanWasmCompilation(
69326932
call_descriptor = GetI32WasmCallDescriptor(&zone, call_descriptor);
69336933
}
69346934

6935+
if (ContainsSimd(func_body.sig) &&
6936+
(!CpuFeatures::SupportsWasmSimd128() || env->lower_simd)) {
6937+
call_descriptor = GetI32WasmCallDescriptorForSimd(&zone, call_descriptor);
6938+
}
6939+
69356940
Pipeline::GenerateCodeForWasmFunction(
69366941
&info, wasm_engine, mcgraph, call_descriptor, source_positions,
69376942
node_origins, func_body, env->module, func_index);

deps/v8/src/objects/objects.cc

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7220,10 +7220,9 @@ int BaseNameDictionary<Derived, Shape>::NextEnumerationIndex(
72207220
// Check whether the next enumeration index is valid.
72217221
if (!PropertyDetails::IsValidIndex(index)) {
72227222
// If not, we generate new indices for the properties.
7223-
int length = dictionary->NumberOfElements();
7224-
72257223
Handle<FixedArray> iteration_order = IterationIndices(isolate, dictionary);
7226-
DCHECK_EQ(length, iteration_order->length());
7224+
int length = iteration_order->length();
7225+
DCHECK_LE(length, dictionary->NumberOfElements());
72277226

72287227
// Iterate over the dictionary using the enumeration order and update
72297228
// the dictionary with new enumeration indices.
@@ -7467,8 +7466,8 @@ void BaseNameDictionary<Derived, Shape>::CopyEnumKeysTo(
74677466
template <typename Derived, typename Shape>
74687467
Handle<FixedArray> BaseNameDictionary<Derived, Shape>::IterationIndices(
74697468
Isolate* isolate, Handle<Derived> dictionary) {
7470-
int length = dictionary->NumberOfElements();
7471-
Handle<FixedArray> array = isolate->factory()->NewFixedArray(length);
7469+
Handle<FixedArray> array =
7470+
isolate->factory()->NewFixedArray(dictionary->NumberOfElements());
74727471
ReadOnlyRoots roots(isolate);
74737472
int array_size = 0;
74747473
{
@@ -7480,7 +7479,13 @@ Handle<FixedArray> BaseNameDictionary<Derived, Shape>::IterationIndices(
74807479
array->set(array_size++, Smi::FromInt(i.as_int()));
74817480
}
74827481

7483-
DCHECK_EQ(array_size, length);
7482+
// The global dictionary doesn't track its deletion count, so we may iterate
7483+
// fewer entries than the count of elements claimed by the dictionary.
7484+
if (std::is_same<Derived, GlobalDictionary>::value) {
7485+
DCHECK_LE(array_size, dictionary->NumberOfElements());
7486+
} else {
7487+
DCHECK_EQ(array_size, dictionary->NumberOfElements());
7488+
}
74847489

74857490
EnumIndexComparator<Derived> cmp(raw_dictionary);
74867491
// Use AtomicSlot wrapper to ensure that std::sort uses atomic load and

deps/v8/src/parsing/parser.cc

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -505,7 +505,6 @@ FunctionLiteral* Parser::ParseProgram(Isolate* isolate, Handle<Script> script,
505505
Scope::DeserializationMode::kIncludingVariables);
506506

507507
scanner_.Initialize();
508-
scanner_.SkipHashBang();
509508
FunctionLiteral* result = DoParseProgram(isolate, info);
510509
MaybeResetCharacterStream(info, result);
511510
MaybeProcessSourceRanges(info, result, stack_limit_);

deps/v8/src/parsing/preparser.cc

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,10 +75,6 @@ PreParser::PreParseResult PreParser::PreParseProgram() {
7575
scope->set_is_being_lazily_parsed(true);
7676
#endif
7777

78-
// Note: We should only skip the hashbang in non-Eval scripts
79-
// (currently, Eval is not handled by the PreParser).
80-
scanner()->SkipHashBang();
81-
8278
// ModuleDeclarationInstantiation for Source Text Module Records creates a
8379
// new Module Environment Record whose outer lexical environment record is
8480
// the global scope.

0 commit comments

Comments
 (0)