Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(338)

Side by Side Diff: src/parser.h

Issue 458613004: Refactor ParseObjectLiteral (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | src/preparser.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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_PARSER_H_ 5 #ifndef V8_PARSER_H_
6 #define V8_PARSER_H_ 6 #define V8_PARSER_H_
7 7
8 #include "src/allocation.h" 8 #include "src/allocation.h"
9 #include "src/ast.h" 9 #include "src/ast.h"
10 #include "src/compiler.h" // For CachedDataMode 10 #include "src/compiler.h" // For CachedDataMode
(...skipping 421 matching lines...) Expand 10 before | Expand all | Expand 10 after
432 static void PushLiteralName(FuncNameInferrer* fni, const AstRawString* id) { 432 static void PushLiteralName(FuncNameInferrer* fni, const AstRawString* id) {
433 fni->PushLiteralName(id); 433 fni->PushLiteralName(id);
434 } 434 }
435 void PushPropertyName(FuncNameInferrer* fni, Expression* expression); 435 void PushPropertyName(FuncNameInferrer* fni, Expression* expression);
436 static void InferFunctionName(FuncNameInferrer* fni, 436 static void InferFunctionName(FuncNameInferrer* fni,
437 FunctionLiteral* func_to_infer) { 437 FunctionLiteral* func_to_infer) {
438 fni->AddFunction(func_to_infer); 438 fni->AddFunction(func_to_infer);
439 } 439 }
440 440
441 static void CheckFunctionLiteralInsideTopLevelObjectLiteral( 441 static void CheckFunctionLiteralInsideTopLevelObjectLiteral(
442 Scope* scope, Expression* value, bool* has_function) { 442 Scope* scope, ObjectLiteralProperty* property, bool* has_function) {
443 Expression* value = property->value();
443 if (scope->DeclarationScope()->is_global_scope() && 444 if (scope->DeclarationScope()->is_global_scope() &&
444 value->AsFunctionLiteral() != NULL) { 445 value->AsFunctionLiteral() != NULL) {
445 *has_function = true; 446 *has_function = true;
446 value->AsFunctionLiteral()->set_pretenure(); 447 value->AsFunctionLiteral()->set_pretenure();
447 } 448 }
448 } 449 }
449 450
450 // If we assign a function literal to a property we pretenure the 451 // If we assign a function literal to a property we pretenure the
451 // literal so it can be added as a constant function property. 452 // literal so it can be added as a constant function property.
452 static void CheckAssigningFunctionLiteralToProperty(Expression* left, 453 static void CheckAssigningFunctionLiteralToProperty(Expression* left,
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
522 static const AstRawString* EmptyIdentifier() { 523 static const AstRawString* EmptyIdentifier() {
523 return NULL; 524 return NULL;
524 } 525 }
525 static Expression* EmptyExpression() { 526 static Expression* EmptyExpression() {
526 return NULL; 527 return NULL;
527 } 528 }
528 static Expression* EmptyArrowParamList() { return NULL; } 529 static Expression* EmptyArrowParamList() { return NULL; }
529 static Literal* EmptyLiteral() { 530 static Literal* EmptyLiteral() {
530 return NULL; 531 return NULL;
531 } 532 }
533 static ObjectLiteralProperty* EmptyObjectLiteralProperty() { return NULL; }
532 534
533 // Used in error return values. 535 // Used in error return values.
534 static ZoneList<Expression*>* NullExpressionList() { 536 static ZoneList<Expression*>* NullExpressionList() {
535 return NULL; 537 return NULL;
536 } 538 }
537 539
538 // Non-NULL empty string. 540 // Non-NULL empty string.
539 V8_INLINE const AstRawString* EmptyIdentifierString(); 541 V8_INLINE const AstRawString* EmptyIdentifierString();
540 542
541 // Odd-ball literal creators. 543 // Odd-ball literal creators.
(...skipping 356 matching lines...) Expand 10 before | Expand all | Expand 10 after
898 private: 900 private:
899 static const int kLiteralTypeSlot = 0; 901 static const int kLiteralTypeSlot = 0;
900 static const int kElementsSlot = 1; 902 static const int kElementsSlot = 1;
901 903
902 DISALLOW_IMPLICIT_CONSTRUCTORS(CompileTimeValue); 904 DISALLOW_IMPLICIT_CONSTRUCTORS(CompileTimeValue);
903 }; 905 };
904 906
905 } } // namespace v8::internal 907 } } // namespace v8::internal
906 908
907 #endif // V8_PARSER_H_ 909 #endif // V8_PARSER_H_
OLDNEW
« no previous file with comments | « no previous file | src/preparser.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698