diff --git a/atom/common/native_mate_converters/v8_value_converter.cc b/atom/common/native_mate_converters/v8_value_converter.cc index 686e3e0e39dc..343b4a013b57 100644 --- a/atom/common/native_mate_converters/v8_value_converter.cc +++ b/atom/common/native_mate_converters/v8_value_converter.cc @@ -262,6 +262,9 @@ base::Value* V8ValueConverter::FromV8ValueImpl( if (state->HasReachedMaxRecursionDepth()) return nullptr; + if (val->IsExternal()) + return base::Value::CreateNullValue().release(); + if (val->IsNull()) return base::Value::CreateNullValue().release(); @@ -415,11 +418,6 @@ base::Value* V8ValueConverter::FromV8Object( child_v8 = v8::Null(isolate); } - // Ignore external values since calling CreationContext() on them can - // crash - if (child_v8->IsExternal()) - continue; - std::unique_ptr child( FromV8ValueImpl(state, child_v8, isolate)); if (!child.get())