Index: src/ast.h |
=================================================================== |
--- src/ast.h (revision 9531) |
+++ src/ast.h (working copy) |
@@ -90,7 +90,6 @@ |
V(CountOperation) \ |
V(BinaryOperation) \ |
V(CompareOperation) \ |
- V(CompareToNull) \ |
V(ThisFunction) |
#define AST_NODE_LIST(V) \ |
@@ -289,6 +288,12 @@ |
// True iff the expression is a literal represented as a smi. |
virtual bool IsSmiLiteral() { return false; } |
+ // True iff the expression is a string literal. |
+ virtual bool IsStringLiteral() { return false; } |
+ |
+ // True iff the expression is the null literal. |
+ virtual bool IsNullLiteral() { return false; } |
+ |
// Type feedback information for assignments and properties. |
virtual bool IsMonomorphic() { |
UNREACHABLE(); |
@@ -891,6 +896,8 @@ |
virtual bool IsTrivial() { return true; } |
virtual bool IsSmiLiteral() { return handle_->IsSmi(); } |
+ virtual bool IsStringLiteral() { return handle_->IsString(); } |
+ virtual bool IsNullLiteral() { return handle_->IsNull(); } |
// Check if this literal is identical to the other literal. |
bool IsIdenticalTo(const Literal* other) const { |
@@ -1465,6 +1472,7 @@ |
// Match special cases. |
bool IsLiteralCompareTypeof(Expression** expr, Handle<String>* check); |
bool IsLiteralCompareUndefined(Expression** expr); |
+ bool IsLiteralCompareNull(Expression** expr); |
private: |
Token::Value op_; |
@@ -1477,25 +1485,6 @@ |
}; |
-class CompareToNull: public Expression { |
- public: |
- CompareToNull(Isolate* isolate, bool is_strict, Expression* expression) |
- : Expression(isolate), is_strict_(is_strict), expression_(expression) { } |
- |
- DECLARE_NODE_TYPE(CompareToNull) |
- |
- virtual bool IsInlineable() const; |
- |
- bool is_strict() const { return is_strict_; } |
- Token::Value op() const { return is_strict_ ? Token::EQ_STRICT : Token::EQ; } |
- Expression* expression() const { return expression_; } |
- |
- private: |
- bool is_strict_; |
- Expression* expression_; |
-}; |
- |
- |
class Conditional: public Expression { |
public: |
Conditional(Isolate* isolate, |