Index: Source/bindings/templates/interface.cpp |
diff --git a/Source/bindings/templates/interface.cpp b/Source/bindings/templates/interface.cpp |
index abfc05c5d0cda070179c34b26a1cb357136f0384..5da47a89b6533626e3f90a0aa2fd535dfe2c64cc 100644 |
--- a/Source/bindings/templates/interface.cpp |
+++ b/Source/bindings/templates/interface.cpp |
@@ -596,9 +596,8 @@ |
{% for set_wrapper_reference_to in set_wrapper_reference_to_list %} |
{{set_wrapper_reference_to.cpp_type}} {{set_wrapper_reference_to.name}} = impl->{{set_wrapper_reference_to.name}}(); |
if ({{set_wrapper_reference_to.name}}) { |
- {# The target wrapper for SetWrapperReferenceTo must be created before entering V8 GC. |
- Lazily creating a wrapper here may lead to execution of user javascript during GC. #} |
- RELEASE_ASSERT(DOMDataStore::containsWrapper({{set_wrapper_reference_to.name}}, isolate)); |
+ if (!DOMDataStore::containsWrapper({{set_wrapper_reference_to.name}}, isolate)) |
+ {{set_wrapper_reference_to.name}}->wrap(creationContext, isolate); |
DOMDataStore::setWrapperReference(wrapper, {{set_wrapper_reference_to.name}}, isolate); |
} |
{% endfor %} |