diff options
Diffstat (limited to 'chromium/third_party/blink/renderer/bindings/core/v8/v8_set_return_value_for_core.h')
-rw-r--r-- | chromium/third_party/blink/renderer/bindings/core/v8/v8_set_return_value_for_core.h | 53 |
1 files changed, 4 insertions, 49 deletions
diff --git a/chromium/third_party/blink/renderer/bindings/core/v8/v8_set_return_value_for_core.h b/chromium/third_party/blink/renderer/bindings/core/v8/v8_set_return_value_for_core.h index ea5139ba832..e099006e097 100644 --- a/chromium/third_party/blink/renderer/bindings/core/v8/v8_set_return_value_for_core.h +++ b/chromium/third_party/blink/renderer/bindings/core/v8/v8_set_return_value_for_core.h @@ -14,51 +14,18 @@ namespace blink { namespace bindings { -class NativeValueTraitsStringAdapter; - // ScriptValue template <typename CallbackInfo, typename... ExtraArgs> void V8SetReturnValue(const CallbackInfo& info, const ScriptValue& value, ExtraArgs... extra_args) { - // Ignore all |extra_args| given as inputs for optimization. + // APIs of iterable, maplike, setlike, etc. return their return value of type + // ScriptValue regardless of their Web IDL type since they perform `ToV8` on + // their side. The use of `V8Value` (instead of `V8ValueFor`) must be fine + // because the value must be created in the current world. V8SetReturnValue(info, value.V8Value()); } -// IDLObject type -template <typename CallbackInfo> -void V8SetReturnValue(const CallbackInfo& info, - const ScriptValue& value, - V8ReturnValue::IDLObject) { - DCHECK(!value.IsEmpty()); - v8::Local<v8::Value> v8_value = value.V8Value(); - // TODO(crbug.com/1185033): Change this if-branch to DCHECK. - if (!v8_value->IsObject()) { - V8SetReturnValue(info, v8::Undefined(info.GetIsolate())); - return; - } - V8SetReturnValue(info, v8_value); -} - -// String types -template <typename CallbackInfo> -void V8SetReturnValue(const CallbackInfo& info, - const NativeValueTraitsStringAdapter& value, - v8::Isolate* isolate, - V8ReturnValue::NonNullable) { - V8SetReturnValue(info, static_cast<String>(value), isolate, - V8ReturnValue::kNonNullable); -} - -template <typename CallbackInfo> -void V8SetReturnValue(const CallbackInfo& info, - const NativeValueTraitsStringAdapter& value, - v8::Isolate* isolate, - V8ReturnValue::Nullable) { - V8SetReturnValue(info, static_cast<String>(value), isolate, - V8ReturnValue::kNullable); -} - // EventListener template <typename CallbackInfo> void V8SetReturnValue(const CallbackInfo& info, @@ -70,18 +37,6 @@ void V8SetReturnValue(const CallbackInfo& info, JSEventHandler::AsV8Value(isolate, event_target, event_listener)); } -// IDLDictionaryBase -template <typename CallbackInfo> -void V8SetReturnValue(const CallbackInfo& info, - const IDLDictionaryBase* dictionary) { - // TODO(crbug.com/1185018): Change this if-branch to DCHECK(dictionary). - if (!dictionary) - return V8SetReturnValue(info, v8::Null(info.GetIsolate())); - V8SetReturnValue(info, - dictionary->ToV8Impl(V8ReturnValue::CreationContext(info), - info.GetIsolate())); -} - } // namespace bindings } // namespace blink |