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

Side by Side Diff: src/parsing/parser.h

Issue 2481163002: Assign unique IDs to FunctionLiterals (Closed)
Patch Set: updates Created 4 years 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
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_PARSING_PARSER_H_ 5 #ifndef V8_PARSING_PARSER_H_
6 #define V8_PARSING_PARSER_H_ 6 #define V8_PARSING_PARSER_H_
7 7
8 #include "src/ast/ast.h" 8 #include "src/ast/ast.h"
9 #include "src/ast/scopes.h" 9 #include "src/ast/scopes.h"
10 #include "src/base/compiler-specific.h" 10 #include "src/base/compiler-specific.h"
(...skipping 18 matching lines...) Expand all
29 class FunctionEntry BASE_EMBEDDED { 29 class FunctionEntry BASE_EMBEDDED {
30 public: 30 public:
31 enum { 31 enum {
32 kStartPositionIndex, 32 kStartPositionIndex,
33 kEndPositionIndex, 33 kEndPositionIndex,
34 kNumParametersIndex, 34 kNumParametersIndex,
35 kFunctionLengthIndex, 35 kFunctionLengthIndex,
36 kLiteralCountIndex, 36 kLiteralCountIndex,
37 kPropertyCountIndex, 37 kPropertyCountIndex,
38 kFlagsIndex, 38 kFlagsIndex,
39 kNumInnerFunctionsIndex,
39 kSize 40 kSize
40 }; 41 };
41 42
42 explicit FunctionEntry(Vector<unsigned> backing) 43 explicit FunctionEntry(Vector<unsigned> backing)
43 : backing_(backing) { } 44 : backing_(backing) { }
44 45
45 FunctionEntry() : backing_() { } 46 FunctionEntry() : backing_() { }
46 47
47 class LanguageModeField : public BitField<LanguageMode, 0, 1> {}; 48 class LanguageModeField : public BitField<LanguageMode, 0, 1> {};
48 class UsesSuperPropertyField 49 class UsesSuperPropertyField
(...skipping 23 matching lines...) Expand all
72 } 73 }
73 bool uses_super_property() const { 74 bool uses_super_property() const {
74 return UsesSuperPropertyField::decode(backing_[kFlagsIndex]); 75 return UsesSuperPropertyField::decode(backing_[kFlagsIndex]);
75 } 76 }
76 bool calls_eval() const { 77 bool calls_eval() const {
77 return CallsEvalField::decode(backing_[kFlagsIndex]); 78 return CallsEvalField::decode(backing_[kFlagsIndex]);
78 } 79 }
79 bool has_duplicate_parameters() const { 80 bool has_duplicate_parameters() const {
80 return HasDuplicateParametersField::decode(backing_[kFlagsIndex]); 81 return HasDuplicateParametersField::decode(backing_[kFlagsIndex]);
81 } 82 }
83 int num_inner_functions() const { return backing_[kNumInnerFunctionsIndex]; }
82 84
83 bool is_valid() const { return !backing_.is_empty(); } 85 bool is_valid() const { return !backing_.is_empty(); }
84 86
85 private: 87 private:
86 Vector<unsigned> backing_; 88 Vector<unsigned> backing_;
87 }; 89 };
88 90
89 91
90 // Wrapper around ScriptData to provide parser-specific functionality. 92 // Wrapper around ScriptData to provide parser-specific functionality.
91 class ParseData { 93 class ParseData {
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after
344 ZoneList<const AstRawString*>* names, bool* ok); 346 ZoneList<const AstRawString*>* names, bool* ok);
345 V8_INLINE Statement* DeclareClass(const AstRawString* variable_name, 347 V8_INLINE Statement* DeclareClass(const AstRawString* variable_name,
346 Expression* value, 348 Expression* value,
347 ZoneList<const AstRawString*>* names, 349 ZoneList<const AstRawString*>* names,
348 int class_token_pos, int end_pos, bool* ok); 350 int class_token_pos, int end_pos, bool* ok);
349 V8_INLINE void DeclareClassVariable(const AstRawString* name, 351 V8_INLINE void DeclareClassVariable(const AstRawString* name,
350 Scope* block_scope, ClassInfo* class_info, 352 Scope* block_scope, ClassInfo* class_info,
351 int class_token_pos, bool* ok); 353 int class_token_pos, bool* ok);
352 V8_INLINE void DeclareClassProperty(const AstRawString* class_name, 354 V8_INLINE void DeclareClassProperty(const AstRawString* class_name,
353 ClassLiteralProperty* property, 355 ClassLiteralProperty* property,
356 ClassLiteralProperty::Kind kind,
357 bool is_static, bool is_constructor,
354 ClassInfo* class_info, bool* ok); 358 ClassInfo* class_info, bool* ok);
355 V8_INLINE Expression* RewriteClassLiteral(const AstRawString* name, 359 V8_INLINE Expression* RewriteClassLiteral(const AstRawString* name,
356 ClassInfo* class_info, int pos, 360 ClassInfo* class_info, int pos,
357 bool* ok); 361 bool* ok);
358 V8_INLINE Statement* DeclareNative(const AstRawString* name, int pos, 362 V8_INLINE Statement* DeclareNative(const AstRawString* name, int pos,
359 bool* ok); 363 bool* ok);
360 364
361 class PatternRewriter final : public AstVisitor<PatternRewriter> { 365 class PatternRewriter final : public AstVisitor<PatternRewriter> {
362 public: 366 public:
363 static void DeclareAndInitializeVariables( 367 static void DeclareAndInitializeVariables(
(...skipping 817 matching lines...) Expand 10 before | Expand all | Expand 10 after
1181 1185
1182 private: 1186 private:
1183 ParserTarget** variable_; 1187 ParserTarget** variable_;
1184 ParserTarget* previous_; 1188 ParserTarget* previous_;
1185 }; 1189 };
1186 1190
1187 } // namespace internal 1191 } // namespace internal
1188 } // namespace v8 1192 } // namespace v8
1189 1193
1190 #endif // V8_PARSING_PARSER_H_ 1194 #endif // V8_PARSING_PARSER_H_
OLDNEW
« no previous file with comments | « src/parsing/parse-info.cc ('k') | src/parsing/parser.cc » ('j') | src/parsing/parser-base.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698