Skip to content

Commit 571f7ef

Browse files
committed
deps: patch V8 to 11.8.172.15
Refs: v8/v8@11.8.172.13...11.8.172.15 PR-URL: #50114 Reviewed-By: Jiawen Geng <[email protected]> Reviewed-By: Richard Lau <[email protected]> Reviewed-By: Yagiz Nizipli <[email protected]>
1 parent dda33c2 commit 571f7ef

File tree

4 files changed

+39
-7
lines changed

4 files changed

+39
-7
lines changed

deps/v8/include/v8-version.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
#define V8_MAJOR_VERSION 11
1212
#define V8_MINOR_VERSION 8
1313
#define V8_BUILD_NUMBER 172
14-
#define V8_PATCH_LEVEL 13
14+
#define V8_PATCH_LEVEL 15
1515

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

deps/v8/src/compiler/js-call-reducer.cc

+4-1
Original file line numberDiff line numberDiff line change
@@ -6381,8 +6381,11 @@ Reduction JSCallReducer::ReduceArrayIterator(Node* node,
63816381
}
63826382
}
63836383

6384+
// JSCreateArrayIterator doesn't have control output, so we bypass the old
6385+
// JSCall node on the control chain.
6386+
ReplaceWithValue(node, node, node, control);
6387+
63846388
// Morph the {node} into a JSCreateArrayIterator with the given {kind}.
6385-
RelaxControls(node);
63866389
node->ReplaceInput(0, receiver);
63876390
node->ReplaceInput(1, context);
63886391
node->ReplaceInput(2, effect);

deps/v8/src/ic/ic.cc

+9-5
Original file line numberDiff line numberDiff line change
@@ -3185,18 +3185,22 @@ bool CanFastCloneObjectWithDifferentMaps(Handle<Map> source_map,
31853185
Handle<Map> target_map,
31863186
Isolate* isolate) {
31873187
DisallowGarbageCollection no_gc;
3188-
// TODO(olivf): Add support for non JS_OBJECT_TYPE source maps. The reason for
3189-
// this restriction is that the IC does not initialize the target object and
3190-
// instead relies on copying the source objects bytes. Thus they need to have
3191-
// the same binary layout.
3188+
// Ensure source and target have identical binary represenation of properties
3189+
// and elements as the IC relies on copying the raw bytes. This also excludes
3190+
// cases with non-enumerable properties or accessors on the source object.
31923191
if (source_map->instance_type() != JS_OBJECT_TYPE ||
31933192
target_map->instance_type() != JS_OBJECT_TYPE ||
31943193
!source_map->OnlyHasSimpleProperties() ||
3195-
!target_map->OnlyHasSimpleProperties()) {
3194+
!target_map->OnlyHasSimpleProperties() ||
3195+
source_map->elements_kind() != target_map->elements_kind() ||
3196+
!source_map->has_fast_elements()) {
31963197
return false;
31973198
}
31983199
// Check that the source inobject properties are big enough to initialize all
31993200
// target slots, but not too big to fit.
3201+
// TODO(olivf): This restriction (and the same restriction on the backing
3202+
// store) could be lifted by properly initializing the target object instead
3203+
// of relying on copying empty slots.
32003204
int source_inobj_properties = source_map->GetInObjectProperties();
32013205
int target_inobj_properties = target_map->GetInObjectProperties();
32023206
int source_used_inobj_properties =
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
// Copyright 2023 the V8 project authors. All rights reserved.
2+
// Use of this source code is governed by a BSD-style license that can be
3+
// found in the LICENSE file.
4+
5+
// Flags: --allow-natives-syntax --jit-fuzzing
6+
7+
const o13 = {
8+
"maxByteLength": 5368789,
9+
};
10+
const v14 = new ArrayBuffer(129, o13);
11+
const v16 = new Uint16Array(v14);
12+
13+
function f3(param) {
14+
for (let i = 0; i < 5; i++) {
15+
try {"resize".includes(v14); } catch (e) {}
16+
v14.resize(3.0, ..."resize", ...v16);
17+
}
18+
19+
let f = function() { return param; }
20+
}
21+
22+
%PrepareFunctionForOptimization(f3);
23+
f3();
24+
%OptimizeFunctionOnNextCall(f3);
25+
f3();

0 commit comments

Comments
 (0)