| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "src/v8.h" | 5 #include "src/v8.h" |
| 6 | 6 |
| 7 #include "src/api.h" | 7 #include "src/api.h" |
| 8 #include "src/ast.h" | 8 #include "src/ast.h" |
| 9 #include "src/base/platform/platform.h" | 9 #include "src/base/platform/platform.h" |
| 10 #include "src/bootstrapper.h" | 10 #include "src/bootstrapper.h" |
| (...skipping 601 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 612 const AstRawString* ParserTraits::GetNextSymbol(Scanner* scanner) { | 612 const AstRawString* ParserTraits::GetNextSymbol(Scanner* scanner) { |
| 613 return parser_->scanner()->NextSymbol(parser_->ast_value_factory_); | 613 return parser_->scanner()->NextSymbol(parser_->ast_value_factory_); |
| 614 } | 614 } |
| 615 | 615 |
| 616 | 616 |
| 617 Expression* ParserTraits::ThisExpression( | 617 Expression* ParserTraits::ThisExpression( |
| 618 Scope* scope, AstNodeFactory<AstConstructionVisitor>* factory, int pos) { | 618 Scope* scope, AstNodeFactory<AstConstructionVisitor>* factory, int pos) { |
| 619 return factory->NewVariableProxy(scope->receiver(), pos); | 619 return factory->NewVariableProxy(scope->receiver(), pos); |
| 620 } | 620 } |
| 621 | 621 |
| 622 Expression* ParserTraits::SuperReference( |
| 623 Scope* scope, AstNodeFactory<AstConstructionVisitor>* factory, int pos) { |
| 624 return factory->NewSuperReference( |
| 625 ThisExpression(scope, factory, pos)->AsVariableProxy(), |
| 626 pos); |
| 627 } |
| 622 | 628 |
| 623 Literal* ParserTraits::ExpressionFromLiteral( | 629 Literal* ParserTraits::ExpressionFromLiteral( |
| 624 Token::Value token, int pos, | 630 Token::Value token, int pos, |
| 625 Scanner* scanner, | 631 Scanner* scanner, |
| 626 AstNodeFactory<AstConstructionVisitor>* factory) { | 632 AstNodeFactory<AstConstructionVisitor>* factory) { |
| 627 switch (token) { | 633 switch (token) { |
| 628 case Token::NULL_LITERAL: | 634 case Token::NULL_LITERAL: |
| 629 return factory->NewNullLiteral(pos); | 635 return factory->NewNullLiteral(pos); |
| 630 case Token::TRUE_LITERAL: | 636 case Token::TRUE_LITERAL: |
| 631 return factory->NewBooleanLiteral(true, pos); | 637 return factory->NewBooleanLiteral(true, pos); |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 724 pending_error_char_arg_(NULL) { | 730 pending_error_char_arg_(NULL) { |
| 725 DCHECK(!script_.is_null()); | 731 DCHECK(!script_.is_null()); |
| 726 isolate_->set_ast_node_id(0); | 732 isolate_->set_ast_node_id(0); |
| 727 set_allow_harmony_scoping(!info->is_native() && FLAG_harmony_scoping); | 733 set_allow_harmony_scoping(!info->is_native() && FLAG_harmony_scoping); |
| 728 set_allow_modules(!info->is_native() && FLAG_harmony_modules); | 734 set_allow_modules(!info->is_native() && FLAG_harmony_modules); |
| 729 set_allow_natives_syntax(FLAG_allow_natives_syntax || info->is_native()); | 735 set_allow_natives_syntax(FLAG_allow_natives_syntax || info->is_native()); |
| 730 set_allow_lazy(false); // Must be explicitly enabled. | 736 set_allow_lazy(false); // Must be explicitly enabled. |
| 731 set_allow_generators(FLAG_harmony_generators); | 737 set_allow_generators(FLAG_harmony_generators); |
| 732 set_allow_arrow_functions(FLAG_harmony_arrow_functions); | 738 set_allow_arrow_functions(FLAG_harmony_arrow_functions); |
| 733 set_allow_harmony_numeric_literals(FLAG_harmony_numeric_literals); | 739 set_allow_harmony_numeric_literals(FLAG_harmony_numeric_literals); |
| 740 set_allow_classes(FLAG_harmony_classes); |
| 734 for (int feature = 0; feature < v8::Isolate::kUseCounterFeatureCount; | 741 for (int feature = 0; feature < v8::Isolate::kUseCounterFeatureCount; |
| 735 ++feature) { | 742 ++feature) { |
| 736 use_counts_[feature] = 0; | 743 use_counts_[feature] = 0; |
| 737 } | 744 } |
| 738 } | 745 } |
| 739 | 746 |
| 740 | 747 |
| 741 FunctionLiteral* Parser::ParseProgram() { | 748 FunctionLiteral* Parser::ParseProgram() { |
| 742 // TODO(bmeurer): We temporarily need to pass allow_nesting = true here, | 749 // TODO(bmeurer): We temporarily need to pass allow_nesting = true here, |
| 743 // see comment for HistogramTimerScope class. | 750 // see comment for HistogramTimerScope class. |
| (...skipping 4058 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4802 info()->SetAstValueFactory(ast_value_factory_); | 4809 info()->SetAstValueFactory(ast_value_factory_); |
| 4803 } | 4810 } |
| 4804 ast_value_factory_ = NULL; | 4811 ast_value_factory_ = NULL; |
| 4805 | 4812 |
| 4806 InternalizeUseCounts(); | 4813 InternalizeUseCounts(); |
| 4807 | 4814 |
| 4808 return (result != NULL); | 4815 return (result != NULL); |
| 4809 } | 4816 } |
| 4810 | 4817 |
| 4811 } } // namespace v8::internal | 4818 } } // namespace v8::internal |
| OLD | NEW |