DFG CFA forgets to notify subsequent phases of found constants if it proves LogicalNot to be a constant
https://bugs.webkit.org/show_bug.cgi?id=89511
<rdar://problem/11700089>

Reviewed by Geoffrey Garen.

Source/JavaScriptCore: 

* dfg/DFGAbstractState.cpp:
(JSC::DFG::AbstractState::execute):

LayoutTests: 

* fast/js/dfg-constant-fold-logical-not-branch-expected.txt: Added.
* fast/js/dfg-constant-fold-logical-not-branch.html: Added.
* fast/js/script-tests/dfg-constant-fold-logical-not-branch.js: Added.
(foo1):
(foo2):
(Stuff):
(Stuff.prototype.thingy):
(Stuff.prototype.otherThingy):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@120767 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/JavaScriptCore/dfg/DFGAbstractState.cpp b/Source/JavaScriptCore/dfg/DFGAbstractState.cpp
index d7aa275..94e9685 100644
--- a/Source/JavaScriptCore/dfg/DFGAbstractState.cpp
+++ b/Source/JavaScriptCore/dfg/DFGAbstractState.cpp
@@ -592,6 +592,7 @@
         JSValue childConst = forNode(node.child1()).value();
         if (childConst) {
             forNode(nodeIndex).set(jsBoolean(!childConst.toBoolean()));
+            m_foundConstants = true;
             node.setCanExit(false);
             break;
         }