Chromium Code Reviews| Index: src/value-serializer.h |
| diff --git a/src/value-serializer.h b/src/value-serializer.h |
| index 7961b2ea0b6a78375b8975945fa740cc3de8b06d..47f8a84ef80c6551839004e8a1fab20703fa5727 100644 |
| --- a/src/value-serializer.h |
| +++ b/src/value-serializer.h |
| @@ -31,6 +31,7 @@ class JSValue; |
| class Object; |
| class Oddball; |
| class Smi; |
| +class WasmModuleObject; |
| enum class SerializationTag : uint8_t; |
| @@ -211,6 +212,13 @@ class ValueDeserializer { |
| Handle<JSArrayBuffer> array_buffer); |
| /* |
| + * Accepts the WasmModuleObject corresponding to the one having transfer_id |
| + * produced by v8::ValueSerializer::GetWasmCompiledModuleId(). |
| + * See issue v8:6106. |
| + */ |
| + void TransferWasmModule(uint32_t transfer_id, |
| + Handle<WasmModuleObject> module); |
| + /* |
| * Publicly exposed wire format writing methods. |
| * These are intended for use within the delegate's WriteHostObject method. |
| */ |
| @@ -218,6 +226,9 @@ class ValueDeserializer { |
| bool ReadUint64(uint64_t* value) WARN_UNUSED_RESULT; |
| bool ReadDouble(double* value) WARN_UNUSED_RESULT; |
| bool ReadRawBytes(size_t length, const void** data) WARN_UNUSED_RESULT; |
| + void set_allow_inline_wasm(bool allow_inline_wasm) { |
| + allow_inline_wasm_ = allow_inline_wasm; |
| + } |
| private: |
| // Reading the wire format. |
| @@ -230,6 +241,7 @@ class ValueDeserializer { |
| Maybe<T> ReadZigZag() WARN_UNUSED_RESULT; |
| Maybe<double> ReadDouble() WARN_UNUSED_RESULT; |
| Maybe<Vector<const uint8_t>> ReadRawBytes(int size) WARN_UNUSED_RESULT; |
| + bool allow_inline_wasm() const { return allow_inline_wasm_; } |
| // Reads a string if it matches the one provided. |
| // Returns true if this was the case. Otherwise, nothing is consumed. |
| @@ -263,6 +275,7 @@ class ValueDeserializer { |
| MaybeHandle<JSArrayBufferView> ReadJSArrayBufferView( |
| Handle<JSArrayBuffer> buffer) WARN_UNUSED_RESULT; |
| MaybeHandle<JSObject> ReadWasmModule() WARN_UNUSED_RESULT; |
| + MaybeHandle<JSObject> ReadWasmModuleTransfer() WARN_UNUSED_RESULT; |
| MaybeHandle<JSObject> ReadHostObject() WARN_UNUSED_RESULT; |
| /* |
| @@ -285,10 +298,12 @@ class ValueDeserializer { |
| PretenureFlag pretenure_; |
| uint32_t version_ = 0; |
| uint32_t next_id_ = 0; |
| + bool allow_inline_wasm_ = false; |
| // Always global handles. |
| Handle<FixedArray> id_map_; |
| MaybeHandle<SeededNumberDictionary> array_buffer_transfer_map_; |
| + std::vector<Handle<WasmModuleObject>> transferred_wasm_modules_; |
|
jbroman
2017/03/17 14:44:37
Hmm. This seems to require that the handles remain
Mircea Trofin
2017/03/17 16:55:31
As discussed offline - this alternative appears to
|
| DISALLOW_COPY_AND_ASSIGN(ValueDeserializer); |
| }; |