diff options
Diffstat (limited to 'chromium/third_party/blink/renderer/bindings/core/v8/v8_dom_configuration.cc')
-rw-r--r-- | chromium/third_party/blink/renderer/bindings/core/v8/v8_dom_configuration.cc | 52 |
1 files changed, 51 insertions, 1 deletions
diff --git a/chromium/third_party/blink/renderer/bindings/core/v8/v8_dom_configuration.cc b/chromium/third_party/blink/renderer/bindings/core/v8/v8_dom_configuration.cc index 739ba61e9f2..6809daa161c 100644 --- a/chromium/third_party/blink/renderer/bindings/core/v8/v8_dom_configuration.cc +++ b/chromium/third_party/blink/renderer/bindings/core/v8/v8_dom_configuration.cc @@ -689,9 +689,10 @@ void V8DOMConfiguration::InstallConstants( v8::Local<v8::ObjectTemplate> prototype_template, const ConstantConfiguration* constants, size_t constant_count) { - for (size_t i = 0; i < constant_count; ++i) + for (size_t i = 0; i < constant_count; ++i) { InstallConstantInternal(isolate, interface_template, prototype_template, constants[i]); + } } void V8DOMConfiguration::InstallConstant( @@ -711,6 +712,41 @@ void V8DOMConfiguration::InstallConstant( InstallConstantInternal(isolate, interface, prototype, constant); } +void V8DOMConfiguration::InstallConstants( + v8::Isolate* isolate, + v8::Local<v8::FunctionTemplate> interface_template, + v8::Local<v8::ObjectTemplate> prototype_template, + const ConstantCallbackConfiguration* constants, + size_t constant_count) { + for (size_t i = 0; i < constant_count; ++i) { + v8::Local<v8::String> name = V8AtomicString(isolate, constants[i].name); + interface_template->SetNativeDataProperty( + name, constants[i].getter, nullptr, v8::Local<v8::Value>(), + static_cast<v8::PropertyAttribute>(v8::ReadOnly | v8::DontDelete), + v8::Local<v8::AccessorSignature>(), v8::DEFAULT, + v8::SideEffectType::kHasNoSideEffect, + v8::SideEffectType::kHasNoSideEffect); + prototype_template->SetNativeDataProperty( + name, constants[i].getter, nullptr, v8::Local<v8::Value>(), + static_cast<v8::PropertyAttribute>(v8::ReadOnly | v8::DontDelete), + v8::Local<v8::AccessorSignature>(), v8::DEFAULT, + v8::SideEffectType::kHasNoSideEffect, + v8::SideEffectType::kHasNoSideEffect); + } +} + +void V8DOMConfiguration::InstallConstants( + v8::Isolate* isolate, + v8::Local<v8::Function> interface_object, + v8::Local<v8::Object> prototype_object, + const V8DOMConfiguration::ConstantConfiguration* constants, + size_t constant_count) { + for (size_t i = 0; i < constant_count; ++i) { + InstallConstantInternal(isolate, interface_object, prototype_object, + constants[i]); + } +} + void V8DOMConfiguration::InstallConstantWithGetter( v8::Isolate* isolate, v8::Local<v8::FunctionTemplate> interface_template, @@ -752,6 +788,20 @@ void V8DOMConfiguration::InstallMethod( interface_template, signature, method, world); } +void V8DOMConfiguration::InstallMethods(v8::Isolate* isolate, + const DOMWrapperWorld& world, + v8::Local<v8::Object> instance, + v8::Local<v8::Object> prototype, + v8::Local<v8::Function> interface, + v8::Local<v8::Signature> signature, + const MethodConfiguration* methods, + size_t method_count) { + for (size_t i = 0; i < method_count; ++i) { + InstallMethodInternal(isolate, instance, prototype, interface, signature, + methods[i], world); + } +} + void V8DOMConfiguration::InstallMethod(v8::Isolate* isolate, const DOMWrapperWorld& world, v8::Local<v8::Object> instance, |