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 #ifndef V8_PARSING_PREPARSER_H | 5 #ifndef V8_PARSING_PREPARSER_H |
6 #define V8_PARSING_PREPARSER_H | 6 #define V8_PARSING_PREPARSER_H |
7 | 7 |
8 #include "src/ast/scopes.h" | 8 #include "src/ast/scopes.h" |
9 #include "src/bailout-reason.h" | 9 #include "src/bailout-reason.h" |
10 #include "src/base/hashmap.h" | 10 #include "src/base/hashmap.h" |
(...skipping 588 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
599 | 599 |
600 typedef v8::internal::ExpressionClassifier<PreParserTraits> | 600 typedef v8::internal::ExpressionClassifier<PreParserTraits> |
601 ExpressionClassifier; | 601 ExpressionClassifier; |
602 | 602 |
603 // Return types for traversing functions. | 603 // Return types for traversing functions. |
604 typedef PreParserIdentifier Identifier; | 604 typedef PreParserIdentifier Identifier; |
605 typedef PreParserExpression Expression; | 605 typedef PreParserExpression Expression; |
606 typedef PreParserExpression YieldExpression; | 606 typedef PreParserExpression YieldExpression; |
607 typedef PreParserExpression FunctionLiteral; | 607 typedef PreParserExpression FunctionLiteral; |
608 typedef PreParserExpression ClassLiteral; | 608 typedef PreParserExpression ClassLiteral; |
| 609 typedef PreParserExpression Literal; |
609 typedef PreParserExpression ObjectLiteralProperty; | 610 typedef PreParserExpression ObjectLiteralProperty; |
610 typedef PreParserExpression Literal; | |
611 typedef PreParserExpressionList ExpressionList; | 611 typedef PreParserExpressionList ExpressionList; |
612 typedef PreParserExpressionList PropertyList; | 612 typedef PreParserExpressionList PropertyList; |
613 typedef PreParserIdentifier FormalParameter; | 613 typedef PreParserIdentifier FormalParameter; |
614 typedef PreParserFormalParameters FormalParameters; | 614 typedef PreParserFormalParameters FormalParameters; |
615 typedef PreParserStatementList StatementList; | 615 typedef PreParserStatementList StatementList; |
616 | 616 |
617 // For constructing objects returned by the traversing functions. | 617 // For constructing objects returned by the traversing functions. |
618 typedef PreParserFactory Factory; | 618 typedef PreParserFactory Factory; |
619 }; | 619 }; |
620 | 620 |
621 explicit PreParserTraits(PreParser* pre_parser) : pre_parser_(pre_parser) {} | 621 explicit PreParserTraits(PreParser* pre_parser) : pre_parser_(pre_parser) {} |
622 | 622 |
623 // Helper functions for recursive descent. | 623 // Helper functions for recursive descent. |
624 bool IsEval(PreParserIdentifier identifier) const { | 624 bool IsEval(PreParserIdentifier identifier) const { |
625 return identifier.IsEval(); | 625 return identifier.IsEval(); |
626 } | 626 } |
627 | 627 |
628 bool IsArguments(PreParserIdentifier identifier) const { | 628 bool IsArguments(PreParserIdentifier identifier) const { |
629 return identifier.IsArguments(); | 629 return identifier.IsArguments(); |
630 } | 630 } |
631 | 631 |
632 bool IsAwait(PreParserIdentifier identifier) const { | |
633 return identifier.IsAwait(); | |
634 } | |
635 | |
636 bool IsEvalOrArguments(PreParserIdentifier identifier) const { | 632 bool IsEvalOrArguments(PreParserIdentifier identifier) const { |
637 return identifier.IsEvalOrArguments(); | 633 return identifier.IsEvalOrArguments(); |
638 } | 634 } |
639 | 635 |
640 bool IsUndefined(PreParserIdentifier identifier) const { | 636 bool IsUndefined(PreParserIdentifier identifier) const { |
641 return identifier.IsUndefined(); | 637 return identifier.IsUndefined(); |
642 } | 638 } |
643 | 639 |
644 bool IsPrototype(PreParserIdentifier identifier) const { | 640 bool IsAwait(PreParserIdentifier identifier) const { |
645 return identifier.IsPrototype(); | 641 return identifier.IsAwait(); |
646 } | 642 } |
647 | 643 |
648 bool IsConstructor(PreParserIdentifier identifier) const { | 644 bool IsFutureStrictReserved(PreParserIdentifier identifier) const { |
649 return identifier.IsConstructor(); | 645 return identifier.IsFutureStrictReserved(); |
650 } | 646 } |
651 | 647 |
652 // Returns true if the expression is of type "this.foo". | 648 // Returns true if the expression is of type "this.foo". |
653 static bool IsThisProperty(PreParserExpression expression) { | 649 static bool IsThisProperty(PreParserExpression expression) { |
654 return expression.IsThisProperty(); | 650 return expression.IsThisProperty(); |
655 } | 651 } |
656 | 652 |
657 static bool IsIdentifier(PreParserExpression expression) { | 653 static bool IsIdentifier(PreParserExpression expression) { |
658 return expression.IsIdentifier(); | 654 return expression.IsIdentifier(); |
659 } | 655 } |
660 | 656 |
661 static PreParserIdentifier AsIdentifier(PreParserExpression expression) { | 657 static PreParserIdentifier AsIdentifier(PreParserExpression expression) { |
662 return expression.AsIdentifier(); | 658 return expression.AsIdentifier(); |
663 } | 659 } |
664 | 660 |
| 661 bool IsPrototype(PreParserIdentifier identifier) const { |
| 662 return identifier.IsPrototype(); |
| 663 } |
| 664 |
| 665 bool IsConstructor(PreParserIdentifier identifier) const { |
| 666 return identifier.IsConstructor(); |
| 667 } |
| 668 |
665 bool IsDirectEvalCall(PreParserExpression expression) const { | 669 bool IsDirectEvalCall(PreParserExpression expression) const { |
666 return expression.IsDirectEvalCall(); | 670 return expression.IsDirectEvalCall(); |
667 } | 671 } |
668 | 672 |
669 bool IsFutureStrictReserved(PreParserIdentifier identifier) const { | |
670 return identifier.IsFutureStrictReserved(); | |
671 } | |
672 | |
673 static bool IsBoilerplateProperty(PreParserExpression property) { | 673 static bool IsBoilerplateProperty(PreParserExpression property) { |
674 // PreParser doesn't count boilerplate properties. | 674 // PreParser doesn't count boilerplate properties. |
675 return false; | 675 return false; |
676 } | 676 } |
677 | 677 |
678 static bool IsArrayIndex(PreParserIdentifier string, uint32_t* index) { | 678 static bool IsArrayIndex(PreParserIdentifier string, uint32_t* index) { |
679 return false; | 679 return false; |
680 } | 680 } |
681 | 681 |
682 static PreParserExpression GetPropertyValue(PreParserExpression property) { | 682 static PreParserExpression GetPropertyValue(PreParserExpression property) { |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
754 const AstRawString* arg, | 754 const AstRawString* arg, |
755 ParseErrorType error_type = kSyntaxError); | 755 ParseErrorType error_type = kSyntaxError); |
756 | 756 |
757 // A dummy function, just useful as an argument to CHECK_OK_CUSTOM. | 757 // A dummy function, just useful as an argument to CHECK_OK_CUSTOM. |
758 static void Void() {} | 758 static void Void() {} |
759 | 759 |
760 // "null" return type creators. | 760 // "null" return type creators. |
761 static PreParserIdentifier EmptyIdentifier() { | 761 static PreParserIdentifier EmptyIdentifier() { |
762 return PreParserIdentifier::Default(); | 762 return PreParserIdentifier::Default(); |
763 } | 763 } |
764 static PreParserIdentifier EmptyIdentifierString() { | |
765 return PreParserIdentifier::Default(); | |
766 } | |
767 static PreParserExpression EmptyExpression() { | 764 static PreParserExpression EmptyExpression() { |
768 return PreParserExpression::Default(); | 765 return PreParserExpression::Default(); |
769 } | 766 } |
770 static PreParserExpression EmptyLiteral() { | 767 static PreParserExpression EmptyLiteral() { |
771 return PreParserExpression::Default(); | 768 return PreParserExpression::Default(); |
772 } | 769 } |
773 static PreParserExpression EmptyObjectLiteralProperty() { | 770 static PreParserExpression EmptyObjectLiteralProperty() { |
774 return PreParserExpression::Default(); | 771 return PreParserExpression::Default(); |
775 } | 772 } |
776 static PreParserExpression EmptyFunctionLiteral() { | 773 static PreParserExpression EmptyFunctionLiteral() { |
777 return PreParserExpression::Default(); | 774 return PreParserExpression::Default(); |
778 } | 775 } |
| 776 |
779 static PreParserExpressionList NullExpressionList() { | 777 static PreParserExpressionList NullExpressionList() { |
780 return PreParserExpressionList(); | 778 return PreParserExpressionList(); |
781 } | 779 } |
| 780 static PreParserIdentifier EmptyIdentifierString() { |
| 781 return PreParserIdentifier::Default(); |
| 782 } |
782 | 783 |
783 // Odd-ball literal creators. | 784 // Odd-ball literal creators. |
784 PreParserExpression GetLiteralTheHole(int position, | 785 PreParserExpression GetLiteralTheHole(int position, |
785 PreParserFactory* factory) const { | 786 PreParserFactory* factory) const { |
786 return PreParserExpression::Default(); | 787 return PreParserExpression::Default(); |
787 } | 788 } |
788 | 789 |
789 // Producing data during the recursive descent. | 790 // Producing data during the recursive descent. |
790 PreParserIdentifier GetSymbol(Scanner* scanner); | 791 PreParserIdentifier GetSymbol(Scanner* scanner); |
791 PreParserIdentifier GetNumberAsSymbol(Scanner* scanner) { | |
792 return PreParserIdentifier::Default(); | |
793 } | |
794 | 792 |
795 PreParserIdentifier GetNextSymbol(Scanner* scanner) const { | 793 PreParserIdentifier GetNextSymbol(Scanner* scanner) const { |
796 return PreParserIdentifier::Default(); | 794 return PreParserIdentifier::Default(); |
797 } | 795 } |
798 | 796 |
| 797 PreParserIdentifier GetNumberAsSymbol(Scanner* scanner) { |
| 798 return PreParserIdentifier::Default(); |
| 799 } |
| 800 |
799 PreParserExpression ThisExpression(int pos = kNoSourcePosition) const { | 801 PreParserExpression ThisExpression(int pos = kNoSourcePosition) const { |
800 return PreParserExpression::This(); | 802 return PreParserExpression::This(); |
801 } | 803 } |
802 | 804 |
803 PreParserExpression NewSuperPropertyReference(PreParserFactory* factory, | 805 PreParserExpression NewSuperPropertyReference(PreParserFactory* factory, |
804 int pos) const { | 806 int pos) const { |
805 return PreParserExpression::Default(); | 807 return PreParserExpression::Default(); |
806 } | 808 } |
807 | 809 |
808 PreParserExpression NewSuperCallReference(PreParserFactory* factory, | 810 PreParserExpression NewSuperCallReference(PreParserFactory* factory, |
(...skipping 27 matching lines...) Expand all Loading... |
836 | 838 |
837 PreParserExpression GetIterator(PreParserExpression iterable, | 839 PreParserExpression GetIterator(PreParserExpression iterable, |
838 PreParserFactory* factory, int pos) { | 840 PreParserFactory* factory, int pos) { |
839 return PreParserExpression::Default(); | 841 return PreParserExpression::Default(); |
840 } | 842 } |
841 | 843 |
842 PreParserExpressionList NewExpressionList(int size, Zone* zone) const { | 844 PreParserExpressionList NewExpressionList(int size, Zone* zone) const { |
843 return PreParserExpressionList(); | 845 return PreParserExpressionList(); |
844 } | 846 } |
845 | 847 |
| 848 PreParserExpressionList NewPropertyList(int size, Zone* zone) const { |
| 849 return PreParserExpressionList(); |
| 850 } |
| 851 |
846 PreParserStatementList NewStatementList(int size, Zone* zone) const { | 852 PreParserStatementList NewStatementList(int size, Zone* zone) const { |
847 return PreParserStatementList(); | 853 return PreParserStatementList(); |
848 } | 854 } |
849 | 855 |
850 PreParserExpressionList NewPropertyList(int size, Zone* zone) const { | |
851 return PreParserExpressionList(); | |
852 } | |
853 | |
854 void AddParameterInitializationBlock( | 856 void AddParameterInitializationBlock( |
855 const PreParserFormalParameters& parameters, PreParserStatementList list, | 857 const PreParserFormalParameters& parameters, PreParserStatementList list, |
856 bool is_async, bool* ok) const {} | 858 bool is_async, bool* ok) const {} |
857 | 859 |
858 V8_INLINE void SkipLazyFunctionBody( | |
859 int* materialized_literal_count, int* expected_property_count, bool* ok, | |
860 Scanner::BookmarkScope* bookmark = nullptr) { | |
861 UNREACHABLE(); | |
862 } | |
863 | |
864 V8_INLINE PreParserStatementList ParseEagerFunctionBody( | |
865 PreParserIdentifier name, int pos, | |
866 const PreParserFormalParameters& parameters, FunctionKind kind, | |
867 FunctionLiteral::FunctionType function_type, bool* ok); | |
868 | |
869 V8_INLINE void ParseArrowFunctionFormalParameterList( | |
870 PreParserFormalParameters* parameters, PreParserExpression expression, | |
871 const Scanner::Location& params_loc, Scanner::Location* duplicate_loc, | |
872 const Scope::Snapshot& scope_snapshot, bool* ok); | |
873 | |
874 void ParseAsyncArrowSingleExpressionBody( | 860 void ParseAsyncArrowSingleExpressionBody( |
875 PreParserStatementList body, bool accept_IN, | 861 PreParserStatementList body, bool accept_IN, |
876 Type::ExpressionClassifier* classifier, int pos, bool* ok); | 862 Type::ExpressionClassifier* classifier, int pos, bool* ok); |
877 | 863 |
878 V8_INLINE PreParserExpression ParseAsyncFunctionExpression(bool* ok); | |
879 | |
880 void ReindexLiterals(const PreParserFormalParameters& parameters) {} | |
881 | |
882 struct TemplateLiteralState {}; | |
883 | |
884 TemplateLiteralState OpenTemplateLiteral(int pos) { | |
885 return TemplateLiteralState(); | |
886 } | |
887 void AddTemplateSpan(TemplateLiteralState* state, bool tail) {} | |
888 void AddTemplateExpression(TemplateLiteralState* state, | |
889 PreParserExpression expression) {} | |
890 V8_INLINE PreParserExpression CloseTemplateLiteral( | |
891 TemplateLiteralState* state, int start, PreParserExpression tag); | |
892 PreParserExpression NoTemplateTag() { | |
893 return PreParserExpression::NoTemplateTag(); | |
894 } | |
895 static bool IsTaggedTemplate(const PreParserExpression tag) { | |
896 return !tag.IsNoTemplateTag(); | |
897 } | |
898 | 864 |
899 void AddFormalParameter(PreParserFormalParameters* parameters, | 865 void AddFormalParameter(PreParserFormalParameters* parameters, |
900 PreParserExpression pattern, | 866 PreParserExpression pattern, |
901 PreParserExpression initializer, | 867 PreParserExpression initializer, |
902 int initializer_end_position, bool is_rest) { | 868 int initializer_end_position, bool is_rest) { |
903 ++parameters->arity; | 869 ++parameters->arity; |
904 } | 870 } |
| 871 |
905 void DeclareFormalParameter(DeclarationScope* scope, | 872 void DeclareFormalParameter(DeclarationScope* scope, |
906 PreParserIdentifier parameter, | 873 PreParserIdentifier parameter, |
907 Type::ExpressionClassifier* classifier) { | 874 Type::ExpressionClassifier* classifier) { |
908 if (!classifier->is_simple_parameter_list()) { | 875 if (!classifier->is_simple_parameter_list()) { |
909 scope->SetHasNonSimpleParameters(); | 876 scope->SetHasNonSimpleParameters(); |
910 } | 877 } |
911 } | 878 } |
912 | 879 |
913 void CheckConflictingVarDeclarations(Scope* scope, bool* ok) {} | 880 V8_INLINE void ParseArrowFunctionFormalParameterList( |
| 881 PreParserFormalParameters* parameters, PreParserExpression expression, |
| 882 const Scanner::Location& params_loc, Scanner::Location* duplicate_loc, |
| 883 const Scope::Snapshot& scope_snapshot, bool* ok); |
| 884 |
| 885 V8_INLINE PreParserExpression ParseAsyncFunctionExpression(bool* ok); |
| 886 |
| 887 V8_INLINE PreParserExpression ParseDoExpression(bool* ok); |
| 888 |
| 889 void ReindexLiterals(const PreParserFormalParameters& parameters) {} |
914 | 890 |
915 // Temporary glue; these functions will move to ParserBase. | 891 // Temporary glue; these functions will move to ParserBase. |
916 PreParserExpression ParseV8Intrinsic(bool* ok); | 892 PreParserExpression ParseV8Intrinsic(bool* ok); |
917 V8_INLINE PreParserExpression ParseDoExpression(bool* ok); | |
918 PreParserExpression ParseFunctionLiteral( | 893 PreParserExpression ParseFunctionLiteral( |
919 PreParserIdentifier name, Scanner::Location function_name_location, | 894 PreParserIdentifier name, Scanner::Location function_name_location, |
920 FunctionNameValidity function_name_validity, FunctionKind kind, | 895 FunctionNameValidity function_name_validity, FunctionKind kind, |
921 int function_token_position, FunctionLiteral::FunctionType type, | 896 int function_token_position, FunctionLiteral::FunctionType type, |
922 LanguageMode language_mode, bool* ok); | 897 LanguageMode language_mode, bool* ok); |
923 | 898 |
| 899 V8_INLINE void SkipLazyFunctionBody( |
| 900 int* materialized_literal_count, int* expected_property_count, bool* ok, |
| 901 Scanner::BookmarkScope* bookmark = nullptr) { |
| 902 UNREACHABLE(); |
| 903 } |
| 904 |
| 905 V8_INLINE PreParserStatementList ParseEagerFunctionBody( |
| 906 PreParserIdentifier name, int pos, |
| 907 const PreParserFormalParameters& parameters, FunctionKind kind, |
| 908 FunctionLiteral::FunctionType function_type, bool* ok); |
| 909 |
924 PreParserExpression ParseClassLiteral(Type::ExpressionClassifier* classifier, | 910 PreParserExpression ParseClassLiteral(Type::ExpressionClassifier* classifier, |
925 PreParserIdentifier name, | 911 PreParserIdentifier name, |
926 Scanner::Location class_name_location, | 912 Scanner::Location class_name_location, |
927 bool name_is_strict_reserved, int pos, | 913 bool name_is_strict_reserved, int pos, |
928 bool* ok); | 914 bool* ok); |
929 | 915 |
930 V8_INLINE void MarkCollectedTailCallExpressions() {} | 916 V8_INLINE void MarkCollectedTailCallExpressions() {} |
931 V8_INLINE void MarkTailPosition(PreParserExpression expression) {} | 917 V8_INLINE void MarkTailPosition(PreParserExpression expression) {} |
932 | 918 |
933 PreParserExpressionList PrepareSpreadArguments(PreParserExpressionList list) { | 919 void CheckConflictingVarDeclarations(Scope* scope, bool* ok) {} |
| 920 |
| 921 struct TemplateLiteralState {}; |
| 922 |
| 923 V8_INLINE TemplateLiteralState OpenTemplateLiteral(int pos) { |
| 924 return TemplateLiteralState(); |
| 925 } |
| 926 V8_INLINE void AddTemplateSpan(TemplateLiteralState* state, bool tail) {} |
| 927 V8_INLINE void AddTemplateExpression(TemplateLiteralState* state, |
| 928 PreParserExpression expression) {} |
| 929 V8_INLINE PreParserExpression CloseTemplateLiteral( |
| 930 TemplateLiteralState* state, int start, PreParserExpression tag); |
| 931 V8_INLINE PreParserExpression NoTemplateTag() { |
| 932 return PreParserExpression::NoTemplateTag(); |
| 933 } |
| 934 V8_INLINE static bool IsTaggedTemplate(const PreParserExpression tag) { |
| 935 return !tag.IsNoTemplateTag(); |
| 936 } |
| 937 |
| 938 V8_INLINE PreParserExpressionList |
| 939 PrepareSpreadArguments(PreParserExpressionList list) { |
934 return list; | 940 return list; |
935 } | 941 } |
936 | 942 |
937 inline void MaterializeUnspreadArgumentsLiterals(int count); | 943 inline void MaterializeUnspreadArgumentsLiterals(int count); |
938 | 944 |
939 inline PreParserExpression SpreadCall(PreParserExpression function, | 945 inline PreParserExpression SpreadCall(PreParserExpression function, |
940 PreParserExpressionList args, int pos); | 946 PreParserExpressionList args, int pos); |
941 | 947 |
942 inline PreParserExpression SpreadCallNew(PreParserExpression function, | 948 inline PreParserExpression SpreadCallNew(PreParserExpression function, |
943 PreParserExpressionList args, | 949 PreParserExpressionList args, |
944 int pos); | 950 int pos); |
945 | 951 |
946 inline PreParserExpression ExpressionListToExpression( | 952 inline PreParserExpression ExpressionListToExpression( |
947 PreParserExpressionList args) { | 953 PreParserExpressionList args) { |
948 return PreParserExpression::Default(); | 954 return PreParserExpression::Default(); |
949 } | 955 } |
950 | 956 |
951 inline void RewriteDestructuringAssignments() {} | 957 inline void RewriteDestructuringAssignments() {} |
952 | 958 |
953 inline PreParserExpression RewriteExponentiation(PreParserExpression left, | 959 inline PreParserExpression RewriteExponentiation(PreParserExpression left, |
954 PreParserExpression right, | 960 PreParserExpression right, |
955 int pos) { | 961 int pos) { |
956 return left; | 962 return left; |
957 } | 963 } |
958 inline PreParserExpression RewriteAssignExponentiation( | 964 inline PreParserExpression RewriteAssignExponentiation( |
959 PreParserExpression left, PreParserExpression right, int pos) { | 965 PreParserExpression left, PreParserExpression right, int pos) { |
960 return left; | 966 return left; |
961 } | 967 } |
| 968 inline PreParserExpression RewriteAwaitExpression(PreParserExpression value, |
| 969 int pos); |
962 | 970 |
963 inline void QueueDestructuringAssignmentForRewriting( | 971 inline void QueueDestructuringAssignmentForRewriting( |
964 PreParserExpression assignment) {} | 972 PreParserExpression assignment) {} |
965 inline void QueueNonPatternForRewriting(PreParserExpression expr, bool* ok) {} | 973 inline void QueueNonPatternForRewriting(PreParserExpression expr, bool* ok) {} |
966 | 974 |
967 void SetFunctionNameFromPropertyName(PreParserExpression property, | 975 void SetFunctionNameFromPropertyName(PreParserExpression property, |
968 PreParserIdentifier name) {} | 976 PreParserIdentifier name) {} |
969 void SetFunctionNameFromIdentifierRef(PreParserExpression value, | 977 void SetFunctionNameFromIdentifierRef(PreParserExpression value, |
970 PreParserExpression identifier) {} | 978 PreParserExpression identifier) {} |
971 | 979 |
972 inline void RewriteNonPattern(Type::ExpressionClassifier* classifier, | 980 inline void RewriteNonPattern(Type::ExpressionClassifier* classifier, |
973 bool* ok); | 981 bool* ok); |
974 | 982 |
975 inline PreParserExpression RewriteAwaitExpression(PreParserExpression value, | |
976 int pos); | |
977 | |
978 V8_INLINE ZoneList<typename Type::ExpressionClassifier::Error>* | 983 V8_INLINE ZoneList<typename Type::ExpressionClassifier::Error>* |
979 GetReportedErrorList() const; | 984 GetReportedErrorList() const; |
980 V8_INLINE Zone* zone() const; | 985 V8_INLINE Zone* zone() const; |
981 V8_INLINE ZoneList<PreParserExpression>* GetNonPatternList() const; | 986 V8_INLINE ZoneList<PreParserExpression>* GetNonPatternList() const; |
982 | 987 |
983 inline PreParserExpression RewriteYieldStar(PreParserExpression generator, | 988 inline PreParserExpression RewriteYieldStar(PreParserExpression generator, |
984 PreParserExpression expression, | 989 PreParserExpression expression, |
985 int pos); | 990 int pos); |
986 | 991 |
987 private: | 992 private: |
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1251 pre_parser_->function_state_->NextMaterializedLiteralIndex(); | 1256 pre_parser_->function_state_->NextMaterializedLiteralIndex(); |
1252 pre_parser_->function_state_->NextMaterializedLiteralIndex(); | 1257 pre_parser_->function_state_->NextMaterializedLiteralIndex(); |
1253 } | 1258 } |
1254 return EmptyExpression(); | 1259 return EmptyExpression(); |
1255 } | 1260 } |
1256 | 1261 |
1257 } // namespace internal | 1262 } // namespace internal |
1258 } // namespace v8 | 1263 } // namespace v8 |
1259 | 1264 |
1260 #endif // V8_PARSING_PREPARSER_H | 1265 #endif // V8_PARSING_PREPARSER_H |
OLD | NEW |