[parser] remove %catch parsing

Promise catch prediction no longer has to be threaded through the
parser since the code using %catch has been moved to TF codestubs.

This is currently dead code.

BUG=v8:5343,v8:5741

Review-Url: https://codereview.chromium.org/2575133002
Cr-Commit-Position: refs/heads/master@{#41701}
This commit is contained in:
gsathya 2016-12-14 13:03:47 -08:00 committed by Commit bot
parent 5124589642
commit bbc68d4110
4 changed files with 7 additions and 24 deletions

View File

@ -3237,15 +3237,6 @@ class AstNodeFactory final BASE_EMBEDDED {
try_block, scope, variable, catch_block, HandlerTable::UNCAUGHT, pos);
}
TryCatchStatement* NewTryCatchStatementForPromiseReject(Block* try_block,
Scope* scope,
Variable* variable,
Block* catch_block,
int pos) {
return new (zone_) TryCatchStatement(
try_block, scope, variable, catch_block, HandlerTable::PROMISE, pos);
}
TryCatchStatement* NewTryCatchStatementForDesugaring(Block* try_block,
Scope* scope,
Variable* variable,

View File

@ -879,15 +879,16 @@ void AstPrinter::PrintTryStatement(TryStatement* node) {
case HandlerTable::CAUGHT:
prediction = "CAUGHT";
break;
case HandlerTable::PROMISE:
prediction = "PROMISE";
break;
case HandlerTable::DESUGARING:
prediction = "DESUGARING";
break;
case HandlerTable::ASYNC_AWAIT:
prediction = "ASYNC_AWAIT";
break;
case HandlerTable::PROMISE:
// Catch prediction resulting in promise rejections aren't
// parsed by the parser.
UNREACHABLE();
}
Print(" %s\n", prediction);
}

View File

@ -642,7 +642,6 @@ class ParserBase {
scope(nullptr),
init_block(parser->impl()->NullBlock()),
inner_block(parser->impl()->NullBlock()),
for_promise_reject(false),
bound_names(1, parser->zone()),
tail_call_expressions(parser->zone()) {}
IdentifierT name;
@ -651,7 +650,6 @@ class ParserBase {
Scope* scope;
BlockT init_block;
BlockT inner_block;
bool for_promise_reject;
ZoneList<const AstRawString*> bound_names;
TailCallExpressionList tail_call_expressions;
};
@ -5121,7 +5119,6 @@ typename ParserBase<Impl>::StatementT ParserBase<Impl>::ParseTryStatement(
}
CatchInfo catch_info(this);
catch_info.for_promise_reject = allow_natives() && Check(Token::MOD);
if (peek() != Token::CATCH && peek() != Token::FINALLY) {
ReportMessage(MessageTemplate::kNoCatchOrFinally);

View File

@ -1814,15 +1814,9 @@ Statement* Parser::RewriteTryStatement(Block* try_block, Block* catch_block,
DCHECK_NOT_NULL(catch_info.scope);
DCHECK_NOT_NULL(catch_info.variable);
TryCatchStatement* statement;
if (catch_info.for_promise_reject) {
statement = factory()->NewTryCatchStatementForPromiseReject(
try_block, catch_info.scope, catch_info.variable, catch_block,
kNoSourcePosition);
} else {
statement = factory()->NewTryCatchStatement(
try_block, catch_info.scope, catch_info.variable, catch_block,
kNoSourcePosition);
}
statement = factory()->NewTryCatchStatement(try_block, catch_info.scope,
catch_info.variable,
catch_block, kNoSourcePosition);
try_block = factory()->NewBlock(nullptr, 1, false, kNoSourcePosition);
try_block->statements()->Add(statement, zone());