Skip to content

Commit

Permalink
[ValueSerializer] Allow wire format versions beginning with 13 to be …
Browse files Browse the repository at this point in the history
…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}
  • Loading branch information
jeremyroman authored and Commit bot committed Mar 1, 2017
1 parent a8e15e8 commit a927f81
Showing 1 changed file with 3 additions and 4 deletions.
7 changes: 3 additions & 4 deletions src/api.cc
Expand Up @@ -3273,10 +3273,9 @@ Maybe<bool> ValueDeserializer::ReadHeader(Local<Context> 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;
Expand Down

0 comments on commit a927f81

Please sign in to comment.