summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/bindings/core/v8/v8_set_return_value_for_core.h
diff options
context:
space:
mode:
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.h53
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