Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1036)

Unified Diff: third_party/WebKit/Source/bindings/templates/attributes.cpp.tmpl

Issue 2794453002: [Bindings] Replace V8HiddenValue in generated code with V8PrivateProperty (Closed)
Patch Set: . Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/bindings/templates/attributes.cpp.tmpl
diff --git a/third_party/WebKit/Source/bindings/templates/attributes.cpp.tmpl b/third_party/WebKit/Source/bindings/templates/attributes.cpp.tmpl
index d14ade75d64b87d4606eafce8d11c7e56e68bbcf..a43b7d2bd2fc64aa6d639e9879d6c5623ae68eb6 100644
--- a/third_party/WebKit/Source/bindings/templates/attributes.cpp.tmpl
+++ b/third_party/WebKit/Source/bindings/templates/attributes.cpp.tmpl
@@ -60,10 +60,12 @@ const v8::FunctionCallbackInfo<v8::Value>& info
{% if attribute.cached_attribute_validation_method %}
// [CachedAttribute]
- v8::Local<v8::String> propertyName = v8AtomicString(info.GetIsolate(), "{{attribute.name}}");
+ V8PrivateProperty::Symbol propertySymbol =
+ V8PrivateProperty::getSymbol(info.GetIsolate(),
+ "{{cpp_class}}#{{attribute.name.capitalize()}}");
if (!impl->{{attribute.cached_attribute_validation_method}}()) {
- v8::Local<v8::Value> v8Value = V8HiddenValue::getHiddenValue(ScriptState::forFunctionObject(info), holder, propertyName);
- if (!v8Value.IsEmpty() && !v8Value->IsUndefined()) {
+ v8::Local<v8::Value> v8Value = propertySymbol.getOrUndefined(holder);
+ if (!v8Value->IsUndefined()) {
v8SetReturnValue(info, v8Value);
return;
}
@@ -136,7 +138,7 @@ const v8::FunctionCallbackInfo<v8::Value>& info
{% if attribute.cached_attribute_validation_method %}
// [CachedAttribute]
v8::Local<v8::Value> v8Value({{attribute.cpp_value_to_v8_value}});
- V8HiddenValue::setHiddenValue(ScriptState::forFunctionObject(info), holder, propertyName, v8Value);
+ propertySymbol.set(holder, v8Value);
{% endif %}
{% if attribute.is_explicit_nullable %}
@@ -152,7 +154,9 @@ const v8::FunctionCallbackInfo<v8::Value>& info
if ({{attribute.cpp_value}} && DOMDataStore::setReturnValue{{world_suffix}}(info.GetReturnValue(), {{attribute.cpp_value}}))
return;
v8::Local<v8::Value> v8Value(ToV8({{attribute.cpp_value}}, holder, info.GetIsolate()));
- V8HiddenValue::setHiddenValue(ScriptState::current(info.GetIsolate()), holder, v8AtomicString(info.GetIsolate(), "KeepAlive#{{interface_name}}#{{attribute.name}}"), v8Value);
+ V8PrivateProperty::getSymbol(
+ info.GetIsolate(), "KeepAlive#{{interface_name}}#{{attribute.name}}")
+ .set(holder, v8Value);
{% endif %}
{% if world_suffix %}
@@ -281,14 +285,17 @@ v8::Local<v8::Value> v8Value, const v8::PropertyCallbackInfo<void>& info
v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info
{%- endif %}) {
{% filter format_remove_duplicates(['ExceptionState exceptionState']) %}
+ v8::Isolate* isolate = info.GetIsolate();
+ ALLOW_UNUSED_LOCAL(isolate);
+
{% set define_exception_state -%}
- ExceptionState exceptionState(info.GetIsolate(), ExceptionState::SetterContext, "{{interface_name}}", "{{attribute.name}}");
+ ExceptionState exceptionState(isolate, ExceptionState::SetterContext, "{{interface_name}}", "{{attribute.name}}");
{%- endset %}
{% if attribute.is_lenient_this %}
// [LenientThis]
// Make sure that info.Holder() really points to an instance if [LenientThis].
- if (!{{v8_class}}::hasInstance(info.Holder(), info.GetIsolate()))
+ if (!{{v8_class}}::hasInstance(info.Holder(), isolate))
return; // Return silently because of [LenientThis].
{% endif %}
@@ -320,9 +327,9 @@ v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info
// Perform a security check for the receiver object.
{{define_exception_state}}
{% if local_dom_window_only %}
- if (!BindingSecurity::shouldAllowAccessTo(currentDOMWindow(info.GetIsolate()), uncheckedImpl, exceptionState)) {
+ if (!BindingSecurity::shouldAllowAccessTo(currentDOMWindow(isolate), uncheckedImpl, exceptionState)) {
{% else %}
- if (!BindingSecurity::shouldAllowAccessTo(currentDOMWindow(info.GetIsolate()), impl, exceptionState)) {
+ if (!BindingSecurity::shouldAllowAccessTo(currentDOMWindow(isolate), impl, exceptionState)) {
{% endif %}{# local_dom_window_only #}
v8SetReturnValue(info, v8Value);
return;
@@ -349,7 +356,7 @@ v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info
// Prepare the value to be set.
{% if attribute.idl_type == 'EventHandler' %}
{% if not is_node %}
- moveEventListenerToNewWrapper(info.GetIsolate(), holder, {{attribute.event_handler_getter_expression}}, v8Value, {{v8_class}}::eventListenerCacheIndex);
+ moveEventListenerToNewWrapper(isolate, holder, {{attribute.event_handler_getter_expression}}, v8Value, {{v8_class}}::eventListenerCacheIndex);
{% endif %}
{% else %}{# not EventHandler #}
{{v8_value_to_local_cpp_value(attribute) | indent(2)}}
@@ -369,13 +376,13 @@ v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info
DummyExceptionStateForTesting dummyExceptionState;
{{declare_enum_validation_variable(attribute.enum_values) | indent(2)}}
if (!isValidEnum(cppValue, validValues, WTF_ARRAY_LENGTH(validValues), "{{attribute.enum_type}}", dummyExceptionState)) {
- currentExecutionContext(info.GetIsolate())->addConsoleMessage(ConsoleMessage::create(JSMessageSource, WarningMessageLevel, dummyExceptionState.message()));
+ currentExecutionContext(isolate)->addConsoleMessage(ConsoleMessage::create(JSMessageSource, WarningMessageLevel, dummyExceptionState.message()));
return;
}
{% endif %}
{% if attribute.is_call_with_execution_context or attribute.is_setter_call_with_execution_context %}
- ExecutionContext* executionContext = currentExecutionContext(info.GetIsolate());
+ ExecutionContext* executionContext = currentExecutionContext(isolate);
{% endif %}
{% if attribute.is_call_with_script_state %}
@@ -387,14 +394,16 @@ v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info
{% endif %}
{% if attribute.is_replaceable %}
- v8::Local<v8::String> propertyName = v8AtomicString(info.GetIsolate(), "{{attribute.name}}");
+ v8::Local<v8::String> propertyName = v8AtomicString(isolate, "{{attribute.name}}");
{% endif %}
{{attribute.cpp_setter}};
{% if attribute.cached_attribute_validation_method %}
// [CachedAttribute]
// Invalidate the cached value.
- V8HiddenValue::deleteHiddenValue(ScriptState::forFunctionObject(info), holder, v8AtomicString(info.GetIsolate(), "{{attribute.name}}"));
+ V8PrivateProperty::getSymbol(
+ isolate, "{{cpp_class}}#{{attribute.name.capitalize()}}")
+ .deleteProperty(holder, v8::Undefined(isolate));
{% endif %}
}
{% endfilter %}{# format_remove_duplicates #}

Powered by Google App Engine
This is Rietveld 408576698