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

Side by Side Diff: src/interpreter/bytecode-generator.h

Issue 1884183002: First version of the new generators implementation. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Rebase Created 4 years, 8 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
OLDNEW
1 // Copyright 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 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_INTERPRETER_BYTECODE_GENERATOR_H_ 5 #ifndef V8_INTERPRETER_BYTECODE_GENERATOR_H_
6 #define V8_INTERPRETER_BYTECODE_GENERATOR_H_ 6 #define V8_INTERPRETER_BYTECODE_GENERATOR_H_
7 7
8 #include "src/ast/ast.h" 8 #include "src/ast/ast.h"
9 #include "src/interpreter/bytecode-array-builder.h" 9 #include "src/interpreter/bytecode-array-builder.h"
10 #include "src/interpreter/bytecodes.h" 10 #include "src/interpreter/bytecodes.h"
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 void BuildKeyedSuperPropertyLoad(Register receiver, Register home_object, 102 void BuildKeyedSuperPropertyLoad(Register receiver, Register home_object,
103 Register key); 103 Register key);
104 104
105 void BuildThrowIfHole(Handle<String> name); 105 void BuildThrowIfHole(Handle<String> name);
106 void BuildThrowIfNotHole(Handle<String> name); 106 void BuildThrowIfNotHole(Handle<String> name);
107 void BuildThrowReassignConstant(Handle<String> name); 107 void BuildThrowReassignConstant(Handle<String> name);
108 void BuildThrowReferenceError(Handle<String> name); 108 void BuildThrowReferenceError(Handle<String> name);
109 void BuildHoleCheckForVariableLoad(VariableMode mode, Handle<String> name); 109 void BuildHoleCheckForVariableLoad(VariableMode mode, Handle<String> name);
110 void BuildHoleCheckForVariableAssignment(Variable* variable, Token::Value op); 110 void BuildHoleCheckForVariableAssignment(Variable* variable, Token::Value op);
111 111
112 void VisitGeneratorPrologue();
113
112 void VisitArgumentsObject(Variable* variable); 114 void VisitArgumentsObject(Variable* variable);
113 void VisitRestArgumentsArray(Variable* rest); 115 void VisitRestArgumentsArray(Variable* rest);
114 void VisitCallSuper(Call* call); 116 void VisitCallSuper(Call* call);
115 void VisitClassLiteralContents(ClassLiteral* expr); 117 void VisitClassLiteralContents(ClassLiteral* expr);
116 void VisitClassLiteralForRuntimeDefinition(ClassLiteral* expr); 118 void VisitClassLiteralForRuntimeDefinition(ClassLiteral* expr);
117 void VisitClassLiteralProperties(ClassLiteral* expr, Register literal, 119 void VisitClassLiteralProperties(ClassLiteral* expr, Register literal,
118 Register prototype); 120 Register prototype);
119 void VisitClassLiteralStaticPrototypeWithComputedName(Register name); 121 void VisitClassLiteralStaticPrototypeWithComputedName(Register name);
120 void VisitThisFunctionVariable(Variable* variable); 122 void VisitThisFunctionVariable(Variable* variable);
121 void VisitNewTargetVariable(Variable* variable); 123 void VisitNewTargetVariable(Variable* variable);
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
197 Isolate* isolate_; 199 Isolate* isolate_;
198 Zone* zone_; 200 Zone* zone_;
199 BytecodeArrayBuilder* builder_; 201 BytecodeArrayBuilder* builder_;
200 CompilationInfo* info_; 202 CompilationInfo* info_;
201 Scope* scope_; 203 Scope* scope_;
202 ZoneVector<Handle<Object>> globals_; 204 ZoneVector<Handle<Object>> globals_;
203 ControlScope* execution_control_; 205 ControlScope* execution_control_;
204 ContextScope* execution_context_; 206 ContextScope* execution_context_;
205 ExpressionResultScope* execution_result_; 207 ExpressionResultScope* execution_result_;
206 RegisterAllocationScope* register_allocator_; 208 RegisterAllocationScope* register_allocator_;
209 ZoneVector<BytecodeLabel> generator_resume_points_;
207 int try_catch_nesting_level_; 210 int try_catch_nesting_level_;
208 int try_finally_nesting_level_; 211 int try_finally_nesting_level_;
212 int generator_yields_seen_;
209 }; 213 };
210 214
211 } // namespace interpreter 215 } // namespace interpreter
212 } // namespace internal 216 } // namespace internal
213 } // namespace v8 217 } // namespace v8
214 218
215 #endif // V8_INTERPRETER_BYTECODE_GENERATOR_H_ 219 #endif // V8_INTERPRETER_BYTECODE_GENERATOR_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698