Skip to content

Commit 07a7bb7

Browse files
jeremyromanaddaleax
authored andcommitted
deps: cherry-pick a16c3c9 from upstream V8
Original commit message: Expose the ValueSerializer data format version as a compile-time constant. BUG=chromium:704293 Review-Url: https://codereview.chromium.org/2804643006 Cr-Commit-Position: refs/heads/master@{#44945} PR-URL: #13515 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>
1 parent f59be6e commit 07a7bb7

File tree

7 files changed

+29
-14
lines changed

7 files changed

+29
-14
lines changed

deps/v8/BUILD.gn

+1
Original file line numberDiff line numberDiff line change
@@ -1019,6 +1019,7 @@ v8_header_set("v8_version") {
10191019
configs = [ ":internal_config" ]
10201020

10211021
sources = [
1022+
"include/v8-value-serializer-version.h",
10221023
"include/v8-version-string.h",
10231024
"include/v8-version.h",
10241025
]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
// Copyright 2017 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+
/**
6+
* Compile-time constants.
7+
*
8+
* This header provides access to information about the value serializer at
9+
* compile time, without declaring or defining any symbols that require linking
10+
* to V8.
11+
*/
12+
13+
#ifndef INCLUDE_V8_VALUE_SERIALIZER_VERSION_H_
14+
#define INCLUDE_V8_VALUE_SERIALIZER_VERSION_H_
15+
16+
#include <stdint.h>
17+
18+
namespace v8 {
19+
20+
constexpr uint32_t CurrentValueSerializerFormatVersion() { return 13; }
21+
22+
} // namespace v8
23+
24+
#endif // INCLUDE_V8_VALUE_SERIALIZER_VERSION_H_

deps/v8/include/v8.h

-2
Original file line numberDiff line numberDiff line change
@@ -1789,8 +1789,6 @@ class V8_EXPORT ValueSerializer {
17891789
virtual void FreeBufferMemory(void* buffer);
17901790
};
17911791

1792-
static uint32_t GetCurrentDataFormatVersion();
1793-
17941792
explicit ValueSerializer(Isolate* isolate);
17951793
ValueSerializer(Isolate* isolate, Delegate* delegate);
17961794
~ValueSerializer();

deps/v8/src/api.cc

-5
Original file line numberDiff line numberDiff line change
@@ -3225,11 +3225,6 @@ struct ValueSerializer::PrivateData {
32253225
i::ValueSerializer serializer;
32263226
};
32273227

3228-
// static
3229-
uint32_t ValueSerializer::GetCurrentDataFormatVersion() {
3230-
return i::ValueSerializer::GetCurrentDataFormatVersion();
3231-
}
3232-
32333228
ValueSerializer::ValueSerializer(Isolate* isolate)
32343229
: ValueSerializer(isolate, nullptr) {}
32353230

deps/v8/src/v8.gyp

+1
Original file line numberDiff line numberDiff line change
@@ -389,6 +389,7 @@
389389
'../include/v8-profiler.h',
390390
'../include/v8-testing.h',
391391
'../include/v8-util.h',
392+
'../include/v8-value-serializer-version.h',
392393
'../include/v8-version-string.h',
393394
'../include/v8-version.h',
394395
'../include/v8.h',

deps/v8/src/value-serializer.cc

+3-5
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
#include <type_traits>
88

9+
#include "include/v8-value-serializer-version.h"
910
#include "src/base/logging.h"
1011
#include "src/conversions.h"
1112
#include "src/factory.h"
@@ -30,6 +31,8 @@ namespace internal {
3031
// Version 13: host objects have an explicit tag (rather than handling all
3132
// unknown tags)
3233
static const uint32_t kLatestVersion = 13;
34+
static_assert(kLatestVersion == v8::CurrentValueSerializerFormatVersion(),
35+
"Exported format version must match latest version.");
3336

3437
static const int kPretenureThreshold = 100 * KB;
3538

@@ -154,11 +157,6 @@ enum class WasmEncodingTag : uint8_t {
154157

155158
} // namespace
156159

157-
// static
158-
uint32_t ValueSerializer::GetCurrentDataFormatVersion() {
159-
return kLatestVersion;
160-
}
161-
162160
ValueSerializer::ValueSerializer(Isolate* isolate,
163161
v8::ValueSerializer::Delegate* delegate)
164162
: isolate_(isolate),

deps/v8/src/value-serializer.h

-2
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,6 @@ enum class SerializationTag : uint8_t;
4343
*/
4444
class ValueSerializer {
4545
public:
46-
static uint32_t GetCurrentDataFormatVersion();
47-
4846
ValueSerializer(Isolate* isolate, v8::ValueSerializer::Delegate* delegate);
4947
~ValueSerializer();
5048

0 commit comments

Comments
 (0)