diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2012-09-10 19:10:20 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2012-09-10 19:10:20 +0200 |
commit | 284837daa07b29d6a63a748544a90b1f5842ac5c (patch) | |
tree | ecd258180bde91fe741e0cfd2638beb3c6da7e8e /Source/JavaScriptCore/dfg/DFGNode.h | |
parent | 2e2ba8ff45915f40ed3e014101269c175f2a89a0 (diff) | |
download | qtwebkit-284837daa07b29d6a63a748544a90b1f5842ac5c.tar.gz |
Imported WebKit commit 68645295d2e3e09af2c942f092556f06aa5f8b0d (http://svn.webkit.org/repository/webkit/trunk@128073)
New snapshot
Diffstat (limited to 'Source/JavaScriptCore/dfg/DFGNode.h')
-rw-r--r-- | Source/JavaScriptCore/dfg/DFGNode.h | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/Source/JavaScriptCore/dfg/DFGNode.h b/Source/JavaScriptCore/dfg/DFGNode.h index 7ca4d8d48..fb31f935e 100644 --- a/Source/JavaScriptCore/dfg/DFGNode.h +++ b/Source/JavaScriptCore/dfg/DFGNode.h @@ -743,6 +743,9 @@ struct Node { case GetByVal: case StringCharAt: case StringCharCodeAt: + case CheckArray: + case ArrayPush: + case ArrayPop: return true; default: return false; @@ -755,10 +758,13 @@ struct Node { return static_cast<Array::Mode>(m_opInfo); } - void setArrayMode(Array::Mode arrayMode) + bool setArrayMode(Array::Mode arrayMode) { ASSERT(hasArrayMode()); + if (this->arrayMode() == arrayMode) + return false; m_opInfo = arrayMode; + return true; } bool hasVirtualRegister() @@ -910,12 +916,27 @@ struct Node { { return isBooleanSpeculation(prediction()); } - + + bool shouldSpeculateString() + { + return isStringSpeculation(prediction()); + } + bool shouldSpeculateFinalObject() { return isFinalObjectSpeculation(prediction()); } + bool shouldSpeculateNonStringCell() + { + return isNonStringCellSpeculation(prediction()); + } + + bool shouldSpeculateNonStringCellOrOther() + { + return isNonStringCellOrOtherSpeculation(prediction()); + } + bool shouldSpeculateFinalObjectOrOther() { return isFinalObjectOrOtherSpeculation(prediction()); |