Index: src/ast.h |
diff --git a/src/ast.h b/src/ast.h |
index e36eb9b32182e481fa8f91e749758e61e228c733..34bdb85b35bb3d05fab1d31e129583c45ee69bc5 100644 |
--- a/src/ast.h |
+++ b/src/ast.h |
@@ -165,7 +165,6 @@ class AstNode: public ZoneObject { |
virtual BreakableStatement* AsBreakableStatement() { return NULL; } |
virtual IterationStatement* AsIterationStatement() { return NULL; } |
virtual MaterializedLiteral* AsMaterializedLiteral() { return NULL; } |
- virtual Slot* AsSlot() { return NULL; } |
// True if the node is simple enough for us to inline calls containing it. |
virtual bool IsInlineable() const = 0; |
@@ -1126,9 +1125,6 @@ class VariableProxy: public Expression { |
DECLARE_NODE_TYPE(VariableProxy) |
- // Type testing & conversion |
- Variable* AsVariable() { return (this == NULL) ? NULL : var_; } |
- |
virtual bool IsValidLeftHandSide() { |
return var_ == NULL ? true : var_->IsValidLeftHandSide(); |
} |
@@ -1145,10 +1141,7 @@ class VariableProxy: public Expression { |
return !is_this() && name().is_identical_to(n); |
} |
- bool IsArguments() { |
- Variable* variable = AsVariable(); |
- return (variable == NULL) ? false : variable->is_arguments(); |
- } |
+ bool IsArguments() { return var_ != NULL && var_->is_arguments(); } |
Handle<String> name() const { return name_; } |
Variable* var() const { return var_; } |
@@ -1192,55 +1185,6 @@ class VariableProxySentinel: public VariableProxy { |
}; |
-class Slot: public Expression { |
- public: |
- enum Type { |
- // A slot in the parameter section on the stack. index() is |
- // the parameter index, counting left-to-right, starting at 0. |
- PARAMETER, |
- |
- // A slot in the local section on the stack. index() is |
- // the variable index in the stack frame, starting at 0. |
- LOCAL, |
- |
- // An indexed slot in a heap context. index() is the |
- // variable index in the context object on the heap, |
- // starting at 0. var()->scope() is the corresponding |
- // scope. |
- CONTEXT, |
- |
- // A named slot in a heap context. var()->name() is the |
- // variable name in the context object on the heap, |
- // with lookup starting at the current context. index() |
- // is invalid. |
- LOOKUP |
- }; |
- |
- Slot(Isolate* isolate, Variable* var, Type type, int index) |
- : Expression(isolate), var_(var), type_(type), index_(index) { |
- ASSERT(var != NULL); |
- } |
- |
- virtual void Accept(AstVisitor* v); |
- |
- virtual Slot* AsSlot() { return this; } |
- |
- bool IsStackAllocated() { return type_ == PARAMETER || type_ == LOCAL; } |
- |
- // Accessors |
- Variable* var() const { return var_; } |
- Type type() const { return type_; } |
- int index() const { return index_; } |
- bool is_arguments() const { return var_->is_arguments(); } |
- virtual bool IsInlineable() const; |
- |
- private: |
- Variable* var_; |
- Type type_; |
- int index_; |
-}; |
- |
- |
class Property: public Expression { |
public: |
Property(Isolate* isolate, |
@@ -2251,9 +2195,6 @@ class AstVisitor BASE_EMBEDDED { |
void SetStackOverflow() { stack_overflow_ = true; } |
void ClearStackOverflow() { stack_overflow_ = false; } |
- // Nodes not appearing in the AST, including slots. |
- virtual void VisitSlot(Slot* node) { UNREACHABLE(); } |
- |
// Individual AST nodes. |
#define DEF_VISIT(type) \ |
virtual void Visit##type(type* node) = 0; |