From 66904156966bf7a735a313e9396f02b0c832cd29 Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Wed, 8 Mar 2017 22:08:21 +0100 Subject: [PATCH] deps: cherry-pick a927f81c7 from V8 upstream Original commit message: [ValueSerializer] Allow wire format versions beginning with 13 to be deserialized in non-legacy mode. As of version 13, delegates do not need to worry about colliding tags with the tags reserved by v8, since v8 inserts a "host object" prefix beforehand. Thus the format is now suitable for more general use, without opting into the "legacy" mode that had this caveat. Review-Url: https://codereview.chromium.org/2722213002 Cr-Commit-Position: refs/heads/master@{#43521} PR-URL: https://github.com/nodejs/node/pull/11752 Reviewed-By: Ben Noordhuis Reviewed-By: Franziska Hinkelmann --- deps/v8/src/api.cc | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/deps/v8/src/api.cc b/deps/v8/src/api.cc index beefd61bdb6b9d..8ede1071d6a7fb 100644 --- a/deps/v8/src/api.cc +++ b/deps/v8/src/api.cc @@ -3273,10 +3273,9 @@ Maybe ValueDeserializer::ReadHeader(Local context) { RETURN_ON_FAILED_EXECUTION_PRIMITIVE(bool); DCHECK(read_header); - // TODO(jbroman): Today, all wire formats are "legacy". When a more supported - // format is added, compare the version of the internal serializer to the - // minimum non-legacy version number. - if (!private_->supports_legacy_wire_format) { + static const uint32_t kMinimumNonLegacyVersion = 13; + if (GetWireFormatVersion() < kMinimumNonLegacyVersion && + !private_->supports_legacy_wire_format) { isolate->Throw(*isolate->factory()->NewError( i::MessageTemplate::kDataCloneDeserializationVersionError)); has_pending_exception = true;