Index: Source/bindings/templates/union.h |
diff --git a/Source/bindings/templates/union.h b/Source/bindings/templates/union.h |
index 497846bc30da6b7236e64e66679615a78fc64fad..4e66ce49c22ad08b8b0fdda35f38b7cbb5581691 100644 |
--- a/Source/bindings/templates/union.h |
+++ b/Source/bindings/templates/union.h |
@@ -89,4 +89,12 @@ public: |
{% endfor %} |
} // namespace blink |
+// We need to set canInitializeWithMemset=true because HeapVector supports |
+// items that can initialize with memset or have a vtable. It is safe to |
+// set canInitializeWithMemset=true for a union type object in practice. |
+// See https://codereview.chromium.org/1118993002/#msg5 for more details. |
+{% for container in containers %} |
+WTF_ALLOW_MOVE_AND_INIT_WITH_MEM_FUNCTIONS(blink::{{container.cpp_class}}); |
+{% endfor %} |
+ |
#endif // {{macro_guard}} |