87ce9fce74
This CL fixes redesigns the current API, which does not correctly manage lifetimes of the shared object conveyors. See design doc at https://docs.google.com/document/d/1TV6agY9dafVJFvdPrUAGbEvos8wL2WDnsmf84n3OJVU/edit?usp=sharing This CL also removes the incorrect behavior of serializing all shared strings by sharing instead of copying. Shared strings may be sent to another process, which should still work. Bug: v8:12547 Change-Id: I7413abd2d871fd3d52c9b433445cfa1d03e4a732 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3868713 Commit-Queue: Shu-yu Guo <syg@chromium.org> Reviewed-by: Adam Klein <adamk@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#83044}
14 lines
523 B
JavaScript
14 lines
523 B
JavaScript
// Copyright 2022 the V8 project authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
// The value deserializer should be lenient of malformed or malicious data and
|
|
// should throw instead of crash on non-existent shared objects in serialized
|
|
// data.
|
|
|
|
(function SharedObject() {
|
|
// Shared object is 'p', ASCII 112.
|
|
const data = new Uint8Array([255, 15, 112, 0]);
|
|
assertThrows(() => { d8.serializer.deserialize(data.buffer); });
|
|
})();
|