| Index: src/parser.cc
|
| diff --git a/src/parser.cc b/src/parser.cc
|
| index 75bfbe25ab84611b2a14a95be4f098cd17073728..fc73a3e3a97c3a38aa6b43fd98b754cb93b732b2 100644
|
| --- a/src/parser.cc
|
| +++ b/src/parser.cc
|
| @@ -756,6 +756,7 @@
|
| Variable::THIS, pos, pos + 4);
|
| }
|
|
|
| +
|
| Expression* ParserTraits::SuperPropertyReference(Scope* scope,
|
| AstNodeFactory* factory,
|
| int pos) {
|
| @@ -783,6 +784,16 @@
|
| return factory->NewSuperCallReference(
|
| ThisExpression(scope, factory, pos)->AsVariableProxy(), new_target_proxy,
|
| this_function_proxy, pos);
|
| +}
|
| +
|
| +
|
| +Expression* ParserTraits::NewTargetExpression(Scope* scope,
|
| + AstNodeFactory* factory,
|
| + int pos) {
|
| + static const int kNewTargetStringLength = 10;
|
| + return scope->NewUnresolved(
|
| + factory, parser_->ast_value_factory()->new_target_string(),
|
| + Variable::NORMAL, pos, pos + kNewTargetStringLength);
|
| }
|
|
|
|
|
| @@ -910,6 +921,7 @@
|
| set_allow_harmony_spreadcalls(FLAG_harmony_spreadcalls);
|
| set_allow_harmony_destructuring(FLAG_harmony_destructuring);
|
| set_allow_harmony_spread_arrays(FLAG_harmony_spread_arrays);
|
| + set_allow_harmony_new_target(FLAG_harmony_new_target);
|
| set_allow_strong_mode(FLAG_strong_mode);
|
| for (int feature = 0; feature < v8::Isolate::kUseCounterFeatureCount;
|
| ++feature) {
|
| @@ -4286,26 +4298,22 @@
|
| reusable_preparser_ = new PreParser(zone(), &scanner_, ast_value_factory(),
|
| NULL, stack_limit_);
|
| reusable_preparser_->set_allow_lazy(true);
|
| - reusable_preparser_->set_allow_natives(allow_natives());
|
| - reusable_preparser_->set_allow_harmony_modules(allow_harmony_modules());
|
| - reusable_preparser_->set_allow_harmony_arrow_functions(
|
| - allow_harmony_arrow_functions());
|
| - reusable_preparser_->set_allow_harmony_classes(allow_harmony_classes());
|
| - reusable_preparser_->set_allow_harmony_object_literals(
|
| - allow_harmony_object_literals());
|
| - reusable_preparser_->set_allow_harmony_sloppy(allow_harmony_sloppy());
|
| - reusable_preparser_->set_allow_harmony_unicode(allow_harmony_unicode());
|
| - reusable_preparser_->set_allow_harmony_computed_property_names(
|
| - allow_harmony_computed_property_names());
|
| - reusable_preparser_->set_allow_harmony_rest_params(
|
| - allow_harmony_rest_params());
|
| - reusable_preparser_->set_allow_harmony_spreadcalls(
|
| - allow_harmony_spreadcalls());
|
| - reusable_preparser_->set_allow_harmony_destructuring(
|
| - allow_harmony_destructuring());
|
| - reusable_preparser_->set_allow_harmony_spread_arrays(
|
| - allow_harmony_spread_arrays());
|
| - reusable_preparser_->set_allow_strong_mode(allow_strong_mode());
|
| +#define SET_ALLOW(name) reusable_preparser_->set_allow_##name(allow_##name());
|
| + SET_ALLOW(natives);
|
| + SET_ALLOW(harmony_modules);
|
| + SET_ALLOW(harmony_arrow_functions);
|
| + SET_ALLOW(harmony_classes);
|
| + SET_ALLOW(harmony_object_literals);
|
| + SET_ALLOW(harmony_sloppy);
|
| + SET_ALLOW(harmony_unicode);
|
| + SET_ALLOW(harmony_computed_property_names);
|
| + SET_ALLOW(harmony_rest_params);
|
| + SET_ALLOW(harmony_spreadcalls);
|
| + SET_ALLOW(harmony_destructuring);
|
| + SET_ALLOW(harmony_spread_arrays);
|
| + SET_ALLOW(harmony_new_target);
|
| + SET_ALLOW(strong_mode);
|
| +#undef SET_ALLOW
|
| }
|
| PreParser::PreParseResult result = reusable_preparser_->PreParseLazyFunction(
|
| language_mode(), function_state_->kind(), logger, bookmark);
|
|
|