emit op_profile_type for deconstruction assignments
https://bugs.webkit.org/show_bug.cgi?id=136274

Reviewed by Filip Pizlo.

Enable type profiling for ES6 deconstruction expressions.

* bytecompiler/NodesCodegen.cpp:
(JSC::BindingNode::bindValue):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@173125 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp b/Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp
index b7e1683..8187e98 100644
--- a/Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp
+++ b/Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp
@@ -2816,6 +2816,8 @@
             return;
         }
         generator.emitMove(local.get(), value);
+        if (generator.vm()->typeProfiler())
+            generator.emitTypeProfilerExpressionInfo(divotStart(), divotEnd());
         return;
     }
     if (generator.isStrictMode())
@@ -2823,6 +2825,10 @@
     RegisterID* scope = generator.emitResolveScope(generator.newTemporary(), m_boundProperty);
     generator.emitExpressionInfo(divotEnd(), divotStart(), divotEnd());
     generator.emitPutToScope(scope, m_boundProperty, value, generator.isStrictMode() ? ThrowIfNotFound : DoNotThrowIfNotFound);
+    if (generator.vm()->typeProfiler()) {
+        generator.emitProfileType(value, ProfileTypeBytecodePutToScope, &m_boundProperty);
+        generator.emitTypeProfilerExpressionInfo(divotStart(), divotEnd());
+    }
     return;
 }