OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 635 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
646 Expression* ParseNewExpression(bool* ok); | 646 Expression* ParseNewExpression(bool* ok); |
647 Expression* ParseMemberExpression(bool* ok); | 647 Expression* ParseMemberExpression(bool* ok); |
648 Expression* ParseNewPrefix(PositionStack* stack, bool* ok); | 648 Expression* ParseNewPrefix(PositionStack* stack, bool* ok); |
649 Expression* ParseMemberWithNewPrefixesExpression(PositionStack* stack, | 649 Expression* ParseMemberWithNewPrefixesExpression(PositionStack* stack, |
650 bool* ok); | 650 bool* ok); |
651 Expression* ParsePrimaryExpression(bool* ok); | 651 Expression* ParsePrimaryExpression(bool* ok); |
652 Expression* ParseArrayLiteral(bool* ok); | 652 Expression* ParseArrayLiteral(bool* ok); |
653 Expression* ParseObjectLiteral(bool* ok); | 653 Expression* ParseObjectLiteral(bool* ok); |
654 Expression* ParseRegExpLiteral(bool seen_equal, bool* ok); | 654 Expression* ParseRegExpLiteral(bool seen_equal, bool* ok); |
655 | 655 |
656 // Populate the constant properties fixed array for a materialized object | |
657 // literal. | |
658 void BuildObjectLiteralConstantProperties( | |
659 ZoneList<ObjectLiteral::Property*>* properties, | |
660 Handle<FixedArray> constants, | |
661 bool* is_simple, | |
662 bool* fast_elements, | |
663 int* depth, | |
664 bool* may_store_doubles); | |
665 | |
666 // Decide if a property should be in the object boilerplate. | |
667 bool IsBoilerplateProperty(ObjectLiteral::Property* property); | |
668 // If the expression is a literal, return the literal value; | |
669 // if the expression is a materialized literal and is simple return a | |
670 // compile time value as encoded by CompileTimeValue::GetValue(). | |
671 // Otherwise, return undefined literal as the placeholder | |
672 // in the object literal boilerplate. | |
673 Handle<Object> GetBoilerplateValue(Expression* expression); | |
674 | |
675 // Initialize the components of a for-in / for-of statement. | 656 // Initialize the components of a for-in / for-of statement. |
676 void InitializeForEachStatement(ForEachStatement* stmt, | 657 void InitializeForEachStatement(ForEachStatement* stmt, |
677 Expression* each, | 658 Expression* each, |
678 Expression* subject, | 659 Expression* subject, |
679 Statement* body); | 660 Statement* body); |
680 | 661 |
681 ZoneList<Expression*>* ParseArguments(bool* ok); | 662 ZoneList<Expression*>* ParseArguments(bool* ok); |
682 FunctionLiteral* ParseFunctionLiteral(Handle<String> var_name, | 663 FunctionLiteral* ParseFunctionLiteral(Handle<String> var_name, |
683 bool name_is_reserved, | 664 bool name_is_reserved, |
684 bool is_generator, | 665 bool is_generator, |
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
847 private: | 828 private: |
848 static const int kLiteralTypeSlot = 0; | 829 static const int kLiteralTypeSlot = 0; |
849 static const int kElementsSlot = 1; | 830 static const int kElementsSlot = 1; |
850 | 831 |
851 DISALLOW_IMPLICIT_CONSTRUCTORS(CompileTimeValue); | 832 DISALLOW_IMPLICIT_CONSTRUCTORS(CompileTimeValue); |
852 }; | 833 }; |
853 | 834 |
854 } } // namespace v8::internal | 835 } } // namespace v8::internal |
855 | 836 |
856 #endif // V8_PARSER_H_ | 837 #endif // V8_PARSER_H_ |
OLD | NEW |