diff options
Diffstat (limited to 'chromium/third_party/blink/renderer/bindings/core/v8/to_v8_traits.h')
-rw-r--r-- | chromium/third_party/blink/renderer/bindings/core/v8/to_v8_traits.h | 50 |
1 files changed, 7 insertions, 43 deletions
diff --git a/chromium/third_party/blink/renderer/bindings/core/v8/to_v8_traits.h b/chromium/third_party/blink/renderer/bindings/core/v8/to_v8_traits.h index 7edaf26127c..4090c21362a 100644 --- a/chromium/third_party/blink/renderer/bindings/core/v8/to_v8_traits.h +++ b/chromium/third_party/blink/renderer/bindings/core/v8/to_v8_traits.h @@ -5,6 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_TO_V8_TRAITS_H_ #define THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_TO_V8_TRAITS_H_ +#include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/blink/renderer/bindings/core/v8/idl_types.h" #include "third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h" #include "third_party/blink/renderer/platform/bindings/dom_data_store.h" @@ -45,10 +46,9 @@ struct ToV8Traits<IDLAny> { // It is not correct to take empty |script_value|. // However, some call sites expect to get v8::Undefined // when ToV8 takes empty |script_value|. - // TODO(crbug.com/1183637): Remove this if-branch. - if (script_value.IsEmpty()) - return v8::Undefined(script_state->GetIsolate()); - return script_value.V8Value(); + // TODO(crbug.com/1183637): Enable the following DCHECK. + // DCHECK(!script_value.IsEmpty()); + return script_value.V8ValueFor(script_state); } static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT @@ -179,7 +179,7 @@ struct ToV8Traits<IDLObject> { static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT ToV8(ScriptState* script_state, const ScriptValue& script_value) { DCHECK(!script_value.IsEmpty()); - v8::Local<v8::Value> v8_value = script_value.V8Value(); + v8::Local<v8::Value> v8_value = script_value.V8ValueFor(script_state); // TODO(crbug.com/1185033): Change this if-branch to DCHECK. if (!v8_value->IsObject()) return v8::Undefined(script_state->GetIsolate()); @@ -266,10 +266,7 @@ struct ToV8Traits< static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT ToV8(ScriptState* script_state, const T* dictionary) { DCHECK(dictionary); - v8::Local<v8::Value> v8_value = dictionary->CreateV8Object( - script_state->GetIsolate(), script_state->GetContext()->Global()); - DCHECK(!v8_value.IsEmpty()); - return v8_value; + return dictionary->ToV8Value(script_state); } }; @@ -778,7 +775,7 @@ struct ToV8Traits<IDLNullable<IDLObject>> { if (script_value.IsEmpty()) return v8::Null(script_state->GetIsolate()); - v8::Local<v8::Value> v8_value = script_value.V8Value(); + v8::Local<v8::Value> v8_value = script_value.V8ValueFor(script_state); DCHECK(v8_value->IsNull() || v8_value->IsObject()); return v8_value; } @@ -1022,39 +1019,6 @@ struct ToV8Traits< } }; -// IDLUnionINT -template <typename T> -struct ToV8Traits<IDLUnionINT<T>> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const T& value) { - return bindings::ToV8HelperUnion(script_state, value); - } -}; - -// IDLUnionNotINT -template <typename T> -struct ToV8Traits<IDLUnionNotINT<T>> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const T& value) { - return bindings::ToV8HelperUnion(script_state, value); - } -}; - -// Nullable IDLUnionINT must not be used. -template <typename T> -struct ToV8Traits<IDLNullable<IDLUnionINT<T>>>; - -// Nullable IDLUnionNotINT -template <typename T> -struct ToV8Traits<IDLNullable<IDLUnionNotINT<T>>> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const T& value) { - if (value.IsNull()) - return v8::Null(script_state->GetIsolate()); - return ToV8Traits<IDLUnionNotINT<T>>::ToV8(script_state, value); - } -}; - // Optional template <typename T> struct ToV8Traits<IDLOptional<T>> { |