diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2012-05-27 21:51:42 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2012-05-27 21:51:42 +0200 |
commit | be01689f43cf6882cf670d33df49ead1f570c53a (patch) | |
tree | 4bb2161d8983b38e3e7ed37b4a50303bfd5e2e85 /Source/JavaScriptCore/dfg/DFGNode.h | |
parent | a89b2ebb8e192c5e8cea21079bda2ee2c0c7dddd (diff) | |
download | qtwebkit-be01689f43cf6882cf670d33df49ead1f570c53a.tar.gz |
Imported WebKit commit 8d6c5efc74f0222dfc7bcce8d845d4a2707ed9e6 (http://svn.webkit.org/repository/webkit/trunk@118629)
Diffstat (limited to 'Source/JavaScriptCore/dfg/DFGNode.h')
-rw-r--r-- | Source/JavaScriptCore/dfg/DFGNode.h | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/Source/JavaScriptCore/dfg/DFGNode.h b/Source/JavaScriptCore/dfg/DFGNode.h index 1dbfccb8a..12ebba823 100644 --- a/Source/JavaScriptCore/dfg/DFGNode.h +++ b/Source/JavaScriptCore/dfg/DFGNode.h @@ -201,9 +201,21 @@ struct Node { return op() == WeakJSConstant; } + bool isPhantomArguments() + { + return op() == PhantomArguments; + } + bool hasConstant() { - return isConstant() || isWeakConstant(); + switch (op()) { + case JSConstant: + case WeakJSConstant: + case PhantomArguments: + return true; + default: + return false; + } } unsigned constantNumber() @@ -234,14 +246,23 @@ struct Node { JSCell* weakConstant() { + ASSERT(op() == WeakJSConstant); return bitwise_cast<JSCell*>(m_opInfo); } JSValue valueOfJSConstant(CodeBlock* codeBlock) { - if (op() == WeakJSConstant) + switch (op()) { + case WeakJSConstant: return JSValue(weakConstant()); - return codeBlock->constantRegister(FirstConstantRegisterIndex + constantNumber()).get(); + case JSConstant: + return codeBlock->constantRegister(FirstConstantRegisterIndex + constantNumber()).get(); + case PhantomArguments: + return JSValue(); + default: + ASSERT_NOT_REACHED(); + return JSValue(); // Have to return something in release mode. + } } bool isInt32Constant(CodeBlock* codeBlock) @@ -589,7 +610,7 @@ struct Node { bool hasStructureTransitionData() { - return op() == PutStructure; + return op() == PutStructure || op() == PhantomPutStructure; } StructureTransitionData& structureTransitionData() |