Skip to content

Commit 566399e

Browse files
targosBridgeAR
authored andcommitted
deps: patch V8 to 7.0.276.36
Refs: v8/v8@7.0.276.35...7.0.276.36 PR-URL: #24109 Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Refael Ackermann <refack@gmail.com>
1 parent 3179011 commit 566399e

File tree

3 files changed

+35
-4
lines changed

3 files changed

+35
-4
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 7
1212
#define V8_MINOR_VERSION 0
1313
#define V8_BUILD_NUMBER 276
14-
#define V8_PATCH_LEVEL 35
14+
#define V8_PATCH_LEVEL 36
1515

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

deps/v8/src/objects.cc

+10-3
Original file line numberDiff line numberDiff line change
@@ -10266,15 +10266,22 @@ Handle<DescriptorArray> DescriptorArray::CopyForFastObjectClone(
1026610266
Name* key = src->GetKey(i);
1026710267
PropertyDetails details = src->GetDetails(i);
1026810268

10269-
SLOW_DCHECK(!key->IsPrivateField() && details.IsEnumerable() &&
10270-
details.kind() == kData);
10269+
DCHECK(!key->IsPrivateField());
10270+
DCHECK(details.IsEnumerable());
10271+
DCHECK_EQ(details.kind(), kData);
1027110272

1027210273
// Ensure the ObjectClone property details are NONE, and that all source
1027310274
// details did not contain DONT_ENUM.
1027410275
PropertyDetails new_details(kData, NONE, details.location(),
1027510276
details.constness(), details.representation(),
1027610277
details.field_index());
10277-
descriptors->Set(i, key, src->GetValue(i), new_details);
10278+
// Do not propagate the field type of normal object fields from the
10279+
// original descriptors since FieldType changes don't create new maps.
10280+
MaybeObject* type = src->GetValue(i);
10281+
if (details.location() == PropertyLocation::kField) {
10282+
type = MaybeObject::FromObject(FieldType::Any());
10283+
}
10284+
descriptors->Set(i, key, type, new_details);
1027810285
}
1027910286

1028010287
descriptors->Sort();
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
// Copyright 2018 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
6+
7+
const resolvedPromise = Promise.resolve();
8+
9+
function spread() {
10+
const result = { ...resolvedPromise };
11+
%HeapObjectVerify(result);
12+
return result;
13+
}
14+
15+
resolvedPromise[undefined] = {a:1};
16+
%HeapObjectVerify(resolvedPromise);
17+
18+
spread();
19+
20+
resolvedPromise[undefined] = undefined;
21+
%HeapObjectVerify(resolvedPromise);
22+
23+
spread();
24+
%HeapObjectVerify(resolvedPromise);

0 commit comments

Comments
 (0)