Chromium Code Reviews| Index: src/parsing/parser.cc |
| diff --git a/src/parsing/parser.cc b/src/parsing/parser.cc |
| index 0d16469f3190e582d399752cf5387926922d268a..90c162e38ea6efa3409365a2d5a0f2f8c6ac7707 100644 |
| --- a/src/parsing/parser.cc |
| +++ b/src/parsing/parser.cc |
| @@ -788,7 +788,7 @@ Expression* ParserTraits::GetIterator(Expression* iterable, |
| factory->NewProperty(iterable, iterator_symbol_literal, pos); |
| Zone* zone = parser_->zone(); |
| ZoneList<Expression*>* args = new (zone) ZoneList<Expression*>(0, zone); |
| - return factory->NewCall(prop, args, pos); |
| + return factory->NewCall(prop, args, pos, Call::NOT_EVAL); |
| } |
| @@ -3199,7 +3199,7 @@ Expression* Parser::BuildIteratorNextResult(Expression* iterator, |
| ZoneList<Expression*>* next_arguments = |
| new (zone()) ZoneList<Expression*>(0, zone()); |
| Expression* next_call = |
| - factory()->NewCall(next_property, next_arguments, pos); |
| + factory()->NewCall(next_property, next_arguments, pos, Call::NOT_EVAL); |
| Expression* result_proxy = factory()->NewVariableProxy(result); |
| Expression* left = |
| factory()->NewAssignment(Token::ASSIGN, result_proxy, next_call, pos); |
| @@ -5558,12 +5558,14 @@ Expression* Parser::CloseTemplateLiteral(TemplateLiteralState* state, int start, |
| Expression* call_site = factory()->NewCallRuntime( |
| Context::GET_TEMPLATE_CALL_SITE_INDEX, args, start); |
| + Call::PossiblyEval is_possibly_eval = CheckPossibleEvalCall(tag, scope()); |
|
rmcilroy
2016/08/11 21:27:59
This call updates the scopes to record the eval ca
adamk
2016/08/11 21:42:31
There used to be a call to CheckPossibleEvalCall h
rmcilroy
2016/08/12 09:18:20
The reason I added this is that when I took it out
|
| + |
| // Call TagFn |
| ZoneList<Expression*>* call_args = |
| new (zone()) ZoneList<Expression*>(expressions->length() + 1, zone()); |
| call_args->Add(call_site, zone()); |
| call_args->AddAll(*expressions, zone()); |
| - return factory()->NewCall(tag, call_args, pos); |
| + return factory()->NewCall(tag, call_args, pos, is_possibly_eval); |
| } |
| } |
| @@ -6276,7 +6278,8 @@ Expression* ParserTraits::RewriteYieldStar( |
| Expression* input_proxy = factory->NewVariableProxy(var_input); |
| auto args = new (zone) ZoneList<Expression*>(1, zone); |
| args->Add(input_proxy, zone); |
| - Expression* call = factory->NewCall(next_property, args, nopos); |
| + Expression* call = |
| + factory->NewCall(next_property, args, nopos, Call::NOT_EVAL); |
| Expression* output_proxy = factory->NewVariableProxy(var_output); |
| Expression* assignment = |
| factory->NewAssignment(Token::ASSIGN, output_proxy, call, nopos); |