| Index: src/full-codegen/full-codegen.h
|
| diff --git a/src/full-codegen/full-codegen.h b/src/full-codegen/full-codegen.h
|
| index 558dae18ddd45d68e7a77cee76eda6f6fbc718cf..74753cce439d51d547df3534008a39413d09a144 100644
|
| --- a/src/full-codegen/full-codegen.h
|
| +++ b/src/full-codegen/full-codegen.h
|
| @@ -82,7 +82,6 @@ class FullCodeGenerator final : public AstVisitor<FullCodeGenerator> {
|
|
|
| class Breakable;
|
| class Iteration;
|
| - class TryFinally;
|
|
|
| class TestContext;
|
|
|
| @@ -103,11 +102,9 @@ class FullCodeGenerator final : public AstVisitor<FullCodeGenerator> {
|
|
|
| virtual Breakable* AsBreakable() { return nullptr; }
|
| virtual Iteration* AsIteration() { return nullptr; }
|
| - virtual TryFinally* AsTryFinally() { return nullptr; }
|
|
|
| virtual bool IsContinueTarget(Statement* target) { return false; }
|
| virtual bool IsBreakTarget(Statement* target) { return false; }
|
| - virtual bool IsTryFinally() { return false; }
|
|
|
| // Notify the statement that we are exiting it via break, continue, or
|
| // return and give it a chance to generate cleanup code. Return the
|
| @@ -185,60 +182,6 @@ class FullCodeGenerator final : public AstVisitor<FullCodeGenerator> {
|
| }
|
| };
|
|
|
| - class DeferredCommands {
|
| - public:
|
| - enum Command { kReturn, kThrow, kBreak, kContinue };
|
| - typedef int TokenId;
|
| - struct DeferredCommand {
|
| - Command command;
|
| - TokenId token;
|
| - Statement* target;
|
| - };
|
| -
|
| - DeferredCommands(FullCodeGenerator* codegen, Label* finally_entry)
|
| - : codegen_(codegen),
|
| - commands_(codegen->zone()),
|
| - return_token_(TokenDispenserForFinally::kInvalidToken),
|
| - throw_token_(TokenDispenserForFinally::kInvalidToken),
|
| - finally_entry_(finally_entry) {}
|
| -
|
| - void EmitCommands();
|
| -
|
| - void RecordBreak(Statement* target);
|
| - void RecordContinue(Statement* target);
|
| - void RecordReturn();
|
| - void RecordThrow();
|
| - void EmitFallThrough();
|
| -
|
| - private:
|
| - MacroAssembler* masm() { return codegen_->masm(); }
|
| - void EmitJumpToFinally(TokenId token);
|
| -
|
| - FullCodeGenerator* codegen_;
|
| - ZoneVector<DeferredCommand> commands_;
|
| - TokenDispenserForFinally dispenser_;
|
| - TokenId return_token_;
|
| - TokenId throw_token_;
|
| - Label* finally_entry_;
|
| - };
|
| -
|
| - // The try block of a try/finally statement.
|
| - class TryFinally : public NestedStatement {
|
| - public:
|
| - TryFinally(FullCodeGenerator* codegen, DeferredCommands* commands)
|
| - : NestedStatement(codegen), deferred_commands_(commands) {}
|
| -
|
| - NestedStatement* Exit(int* context_length) override;
|
| -
|
| - bool IsTryFinally() override { return true; }
|
| - TryFinally* AsTryFinally() override { return this; }
|
| -
|
| - DeferredCommands* deferred_commands() { return deferred_commands_; }
|
| -
|
| - private:
|
| - DeferredCommands* deferred_commands_;
|
| - };
|
| -
|
| // The body of a with or catch.
|
| class WithOrCatch : public NestedStatement {
|
| public:
|
| @@ -648,14 +591,7 @@ class FullCodeGenerator final : public AstVisitor<FullCodeGenerator> {
|
| void RecordStatementPosition(int pos);
|
| void RecordPosition(int pos);
|
|
|
| - // Non-local control flow support.
|
| - void EnterTryBlock(int handler_index, Label* handler,
|
| - HandlerTable::CatchPrediction catch_prediction);
|
| - void ExitTryBlock(int handler_index);
|
| - void EnterFinallyBlock();
|
| - void ExitFinallyBlock();
|
| - void ClearPendingMessage();
|
| -
|
| + // Local control flow support.
|
| void EmitContinue(Statement* target);
|
| void EmitBreak(Statement* target);
|
|
|
| @@ -714,13 +650,10 @@ class FullCodeGenerator final : public AstVisitor<FullCodeGenerator> {
|
| void Generate();
|
| void PopulateDeoptimizationData(Handle<Code> code);
|
| void PopulateTypeFeedbackInfo(Handle<Code> code);
|
| - void PopulateHandlerTable(Handle<Code> code);
|
|
|
| bool MustCreateObjectLiteralWithRuntime(ObjectLiteral* expr) const;
|
| bool MustCreateArrayLiteralWithRuntime(ArrayLiteral* expr) const;
|
|
|
| - int NewHandlerTableEntry();
|
| -
|
| struct BailoutEntry {
|
| BailoutId id;
|
| unsigned pc_and_state;
|
| @@ -732,14 +665,6 @@ class FullCodeGenerator final : public AstVisitor<FullCodeGenerator> {
|
| uint32_t loop_depth;
|
| };
|
|
|
| - struct HandlerTableEntry {
|
| - unsigned range_start;
|
| - unsigned range_end;
|
| - unsigned handler_offset;
|
| - int stack_depth;
|
| - HandlerTable::CatchPrediction catch_prediction;
|
| - };
|
| -
|
| class ExpressionContext BASE_EMBEDDED {
|
| public:
|
| explicit ExpressionContext(FullCodeGenerator* codegen)
|
| @@ -937,7 +862,6 @@ class FullCodeGenerator final : public AstVisitor<FullCodeGenerator> {
|
| const ExpressionContext* context_;
|
| ZoneList<BailoutEntry> bailout_entries_;
|
| ZoneList<BackEdgeEntry> back_edges_;
|
| - ZoneVector<HandlerTableEntry> handler_table_;
|
| SourcePositionTableBuilder source_position_table_builder_;
|
| int ic_total_count_;
|
| Handle<Cell> profiling_counter_;
|
|
|