| Index: src/value-serializer.cc
|
| diff --git a/src/value-serializer.cc b/src/value-serializer.cc
|
| index b0ecc6ddd5f1d10916fd4225ddf1873e68aeb210..edbc75795fa17dffe7aaee88d0eb03411d50aab4 100644
|
| --- a/src/value-serializer.cc
|
| +++ b/src/value-serializer.cc
|
| @@ -349,7 +349,8 @@ Maybe<bool> ValueSerializer::WriteJSReceiver(Handle<JSReceiver> receiver) {
|
|
|
| // Eliminate callable and exotic objects, which should not be serialized.
|
| InstanceType instance_type = receiver->map()->instance_type();
|
| - if (receiver->IsCallable() || instance_type <= LAST_SPECIAL_RECEIVER_TYPE) {
|
| + if (receiver->IsCallable() || (instance_type <= LAST_SPECIAL_RECEIVER_TYPE &&
|
| + instance_type != JS_SPECIAL_API_OBJECT_TYPE)) {
|
| ThrowDataCloneError(MessageTemplate::kDataCloneError, receiver);
|
| return Nothing<bool>();
|
| }
|
| @@ -367,6 +368,8 @@ Maybe<bool> ValueSerializer::WriteJSReceiver(Handle<JSReceiver> receiver) {
|
| return js_object->GetInternalFieldCount() ? WriteHostObject(js_object)
|
| : WriteJSObject(js_object);
|
| }
|
| + case JS_SPECIAL_API_OBJECT_TYPE:
|
| + return WriteHostObject(Handle<JSObject>::cast(receiver));
|
| case JS_DATE_TYPE:
|
| WriteJSDate(JSDate::cast(*receiver));
|
| return Just(true);
|
|
|