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;
}