Chromium Code Reviews| Index: src/ast.cc |
| =================================================================== |
| --- src/ast.cc (revision 7573) |
| +++ src/ast.cc (working copy) |
| @@ -349,6 +349,11 @@ |
| // ---------------------------------------------------------------------------- |
| // Inlining support |
| +bool Declaration::IsInlineable() const { |
| + return false; |
| +} |
| + |
| + |
| bool Block::IsInlineable() const { |
| const int count = statements_.length(); |
| for (int i = 0; i < count; ++i) { |
| @@ -364,16 +369,112 @@ |
| bool IfStatement::IsInlineable() const { |
| - return condition()->IsInlineable() && then_statement()->IsInlineable() && |
| - else_statement()->IsInlineable(); |
| + return condition()->IsInlineable() |
| + && then_statement()->IsInlineable() |
| + && else_statement()->IsInlineable(); |
| } |
| +bool ForStatement::IsInlineable() const { |
| + return false; |
|
Kevin Millikin (Chromium)
2011/04/12 07:23:00
It won't stay sorted, but I think it's easiest to
|
| +} |
| + |
| + |
| +bool WhileStatement::IsInlineable() const { |
| + return false; |
| +} |
| + |
| + |
| +bool DoWhileStatement::IsInlineable() const { |
| + return false; |
| +} |
| + |
| + |
| +bool ForInStatement::IsInlineable() const { |
| + return false; |
| +} |
| + |
| + |
| +bool ContinueStatement::IsInlineable() const { |
| + return false; |
| +} |
| + |
| + |
| +bool BreakStatement::IsInlineable() const { |
| + return false; |
| +} |
| + |
| + |
| bool ReturnStatement::IsInlineable() const { |
| return expression()->IsInlineable(); |
| } |
| +bool WithEnterStatement::IsInlineable() const { |
| + return false; |
| +} |
| + |
| + |
| +bool WithExitStatement::IsInlineable() const { |
| + return false; |
| +} |
| + |
| + |
| +bool SwitchStatement::IsInlineable() const { |
| + return false; |
| +} |
| + |
| + |
| +bool TargetCollector::IsInlineable() const { |
| + return false; |
| +} |
| + |
| +bool TryStatement::IsInlineable() const { |
| + return false; |
| +} |
| + |
| + |
| +bool TryCatchStatement::IsInlineable() const { |
| + return false; |
| +} |
| + |
| + |
| +bool TryFinallyStatement::IsInlineable() const { |
| + return false; |
| +} |
| + |
| + |
| +bool DebuggerStatement::IsInlineable() const { |
| + return false; |
| +} |
| + |
| + |
| +bool EmptyStatement::IsInlineable() const { |
| + return true; |
| +} |
| + |
| + |
| +bool Literal::IsInlineable() const { |
| + return true; |
| +} |
| + |
| + |
| +bool MaterializedLiteral::IsInlineable() const { |
| + return false; |
| +} |
| + |
| + |
| +bool CatchExtensionObject::IsInlineable() const { |
| + return false; |
| +} |
| + |
| + |
| +bool Slot::IsInlineable() const { |
| + UNREACHABLE(); |
| + return false; |
| +} |
| + |
| + |
| bool Conditional::IsInlineable() const { |
| return condition()->IsInlineable() && then_expression()->IsInlineable() && |
| else_expression()->IsInlineable(); |
| @@ -390,6 +491,26 @@ |
| } |
| +bool Throw::IsInlineable() const { |
| + return false; |
| +} |
| + |
| + |
| +bool FunctionLiteral::IsInlineable() const { |
| + return false; |
| +} |
| + |
| + |
| +bool ThisFunction::IsInlineable() const { |
| + return false; |
| +} |
| + |
| + |
| +bool SharedFunctionInfoLiteral::IsInlineable() const { |
| + return false; |
| +} |
| + |
| + |
| bool Property::IsInlineable() const { |
| return obj()->IsInlineable() && key()->IsInlineable(); |
| } |
| @@ -449,6 +570,12 @@ |
| } |
| +bool ValidLeftHandSideSentinel::IsInlineable() const { |
| + UNREACHABLE(); |
| + return false; |
| +} |
| + |
| + |
| // ---------------------------------------------------------------------------- |
| // Recording of type feedback |