| Index: src/json-stringifier.h
|
| diff --git a/src/json-stringifier.h b/src/json-stringifier.h
|
| index 444de43e7bc79b04cc2aa0238f1159d62b774413..efb71e5fb11d59f74fdfa3f2f31e94974670497b 100644
|
| --- a/src/json-stringifier.h
|
| +++ b/src/json-stringifier.h
|
| @@ -396,11 +396,14 @@ BasicJsonStringifier::Result BasicJsonStringifier::SerializeJSValue(
|
| isolate_, value, Execution::ToNumber(isolate_, object), EXCEPTION);
|
| if (value->IsSmi()) return SerializeSmi(Smi::cast(*value));
|
| SerializeHeapNumber(Handle<HeapNumber>::cast(value));
|
| - } else {
|
| - DCHECK(class_name == isolate_->heap()->Boolean_string());
|
| + } else if (class_name == isolate_->heap()->Boolean_string()) {
|
| Object* value = JSValue::cast(*object)->value();
|
| DCHECK(value->IsBoolean());
|
| builder_.AppendCString(value->IsTrue() ? "true" : "false");
|
| + } else {
|
| + // Fail gracefully for special value wrappers.
|
| + isolate_->ThrowIllegalOperation();
|
| + return EXCEPTION;
|
| }
|
| return SUCCESS;
|
| }
|
|
|