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

Side by Side Diff: src/fast-codegen.h

Issue 492002: Fast-codegen: Implementing try/finally on top of nesting context. (Closed)
Patch Set: Updated to be based on latest release. Created 11 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 2009 the V8 project authors. All rights reserved. 1 // Copyright 2009 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 248 matching lines...) Expand 10 before | Expand all | Expand 10 after
259 259
260 // Complete a keyed property assignment. The reciever, key, and 260 // Complete a keyed property assignment. The reciever, key, and
261 // right-hand-side value are expected on top of the stack. 261 // right-hand-side value are expected on top of the stack.
262 void EmitKeyedPropertyAssignment(Assignment* expr); 262 void EmitKeyedPropertyAssignment(Assignment* expr);
263 263
264 void SetFunctionPosition(FunctionLiteral* fun); 264 void SetFunctionPosition(FunctionLiteral* fun);
265 void SetReturnPosition(FunctionLiteral* fun); 265 void SetReturnPosition(FunctionLiteral* fun);
266 void SetStatementPosition(Statement* stmt); 266 void SetStatementPosition(Statement* stmt);
267 void SetSourcePosition(int pos); 267 void SetSourcePosition(int pos);
268 268
269 // Non-local control flow support.
270 void EnterFinallyBlock();
271 void ReturnFromFinallyBlock();
272 void ThrowException();
273
274 // Loop nesting counter.
269 int loop_depth() { return loop_depth_; } 275 int loop_depth() { return loop_depth_; }
270 void increment_loop_depth() { loop_depth_++; } 276 void increment_loop_depth() { loop_depth_++; }
271 void decrement_loop_depth() { 277 void decrement_loop_depth() {
272 ASSERT(loop_depth_ > 0); 278 ASSERT(loop_depth_ > 0);
273 loop_depth_--; 279 loop_depth_--;
274 } 280 }
275 281
276 MacroAssembler* masm() { return masm_; } 282 MacroAssembler* masm() { return masm_; }
277 static Register result_register(); 283 static Register result_register();
278 284
(...skipping 17 matching lines...) Expand all
296 302
297 friend class NestedStatement; 303 friend class NestedStatement;
298 304
299 DISALLOW_COPY_AND_ASSIGN(FastCodeGenerator); 305 DISALLOW_COPY_AND_ASSIGN(FastCodeGenerator);
300 }; 306 };
301 307
302 308
303 } } // namespace v8::internal 309 } } // namespace v8::internal
304 310
305 #endif // V8_FAST_CODEGEN_H_ 311 #endif // V8_FAST_CODEGEN_H_
OLDNEW
« no previous file with comments | « src/compiler.cc ('k') | src/fast-codegen.cc » ('j') | src/fast-codegen.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698