]> git.saurik.com Git - apple/javascriptcore.git/blobdiff - bytecode/DeferredCompilationCallback.cpp
JavaScriptCore-7601.1.46.3.tar.gz
[apple/javascriptcore.git] / bytecode / DeferredCompilationCallback.cpp
index 9d5acb996b5493f50e2c28421ed27ed663acf416..761e95b3f6704fa5db020b146b481a7f89ebbc5a 100644 (file)
@@ -35,6 +35,8 @@ DeferredCompilationCallback::~DeferredCompilationCallback() { }
 
 void DeferredCompilationCallback::compilationDidComplete(CodeBlock* codeBlock, CompilationResult result)
 {
+    dumpCompiledSourcesIfNeeded();
+
     switch (result) {
     case CompilationFailed:
     case CompilationInvalidated:
@@ -47,5 +49,25 @@ void DeferredCompilationCallback::compilationDidComplete(CodeBlock* codeBlock, C
     }
 }
 
+Vector<DeferredSourceDump>& DeferredCompilationCallback::ensureDeferredSourceDump()
+{
+    if (!m_deferredSourceDump)
+        m_deferredSourceDump = std::make_unique<Vector<DeferredSourceDump>>();
+    return *m_deferredSourceDump;
+}
+
+void DeferredCompilationCallback::dumpCompiledSourcesIfNeeded()
+{
+    if (!m_deferredSourceDump)
+        return;
+
+    ASSERT(Options::dumpSourceAtDFGTime());
+    unsigned index = 0;
+    for (auto& info : *m_deferredSourceDump) {
+        dataLog("[", ++index, "] ");
+        info.dump();
+    }
+}
+
 } // JSC