Index: src/parsing/parser-base.h |
diff --git a/src/parsing/parser-base.h b/src/parsing/parser-base.h |
index e4947f208a2fa631dae8d5202ebd722ad8486d86..8077a05a638a4e0557e65a10a3b2e418e5d9658f 100644 |
--- a/src/parsing/parser-base.h |
+++ b/src/parsing/parser-base.h |
@@ -2544,6 +2544,24 @@ ParserBase<Traits>::ParseMemberExpression(ExpressionClassifier* classifier, |
Consume(Token::FUNCTION); |
int function_token_position = position(); |
+ |
+ if (FLAG_harmony_function_sent && Check(Token::PERIOD)) { |
+ // function.sent |
+ |
+ int pos = position(); |
+ ExpectContextualKeyword(CStrVector("sent"), CHECK_OK); |
+ |
+ if (!is_generator()) { |
+ // TODO(neis): allow escaping into closures? |
+ ReportMessageAt(scanner()->location(), |
+ MessageTemplate::kUnexpectedFunctionSent); |
+ *ok = false; |
+ return this->EmptyExpression(); |
+ } |
+ |
+ return this->FunctionSentExpression(scope_, factory(), pos); |
+ } |
+ |
bool is_generator = Check(Token::MUL); |
IdentifierT name = this->EmptyIdentifier(); |
bool is_strict_reserved_name = false; |