OLD | NEW |
1 // Copyright 2010 the V8 project authors. All rights reserved. | 1 // Copyright 2010 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 195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
206 Visit(expr->value()); | 206 Visit(expr->value()); |
207 } | 207 } |
208 | 208 |
209 | 209 |
210 void BreakableStatementChecker::VisitThrow(Throw* expr) { | 210 void BreakableStatementChecker::VisitThrow(Throw* expr) { |
211 // Throw is breakable if the expression is. | 211 // Throw is breakable if the expression is. |
212 Visit(expr->exception()); | 212 Visit(expr->exception()); |
213 } | 213 } |
214 | 214 |
215 | 215 |
216 void BreakableStatementChecker::VisitIncrementOperation( | |
217 IncrementOperation* expr) { | |
218 UNREACHABLE(); | |
219 } | |
220 | |
221 | |
222 void BreakableStatementChecker::VisitProperty(Property* expr) { | 216 void BreakableStatementChecker::VisitProperty(Property* expr) { |
223 // Property load is breakable. | 217 // Property load is breakable. |
224 is_breakable_ = true; | 218 is_breakable_ = true; |
225 } | 219 } |
226 | 220 |
227 | 221 |
228 void BreakableStatementChecker::VisitCall(Call* expr) { | 222 void BreakableStatementChecker::VisitCall(Call* expr) { |
229 // Function calls both through IC and call stub are breakable. | 223 // Function calls both through IC and call stub are breakable. |
230 is_breakable_ = true; | 224 is_breakable_ = true; |
231 } | 225 } |
(...skipping 1118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1350 | 1344 |
1351 | 1345 |
1352 void FullCodeGenerator::VisitThrow(Throw* expr) { | 1346 void FullCodeGenerator::VisitThrow(Throw* expr) { |
1353 Comment cmnt(masm_, "[ Throw"); | 1347 Comment cmnt(masm_, "[ Throw"); |
1354 VisitForStackValue(expr->exception()); | 1348 VisitForStackValue(expr->exception()); |
1355 __ CallRuntime(Runtime::kThrow, 1); | 1349 __ CallRuntime(Runtime::kThrow, 1); |
1356 // Never returns here. | 1350 // Never returns here. |
1357 } | 1351 } |
1358 | 1352 |
1359 | 1353 |
1360 void FullCodeGenerator::VisitIncrementOperation(IncrementOperation* expr) { | |
1361 UNREACHABLE(); | |
1362 } | |
1363 | |
1364 | |
1365 int FullCodeGenerator::TryFinally::Exit(int stack_depth) { | 1354 int FullCodeGenerator::TryFinally::Exit(int stack_depth) { |
1366 // The macros used here must preserve the result register. | 1355 // The macros used here must preserve the result register. |
1367 __ Drop(stack_depth); | 1356 __ Drop(stack_depth); |
1368 __ PopTryHandler(); | 1357 __ PopTryHandler(); |
1369 __ Call(finally_entry_); | 1358 __ Call(finally_entry_); |
1370 return 0; | 1359 return 0; |
1371 } | 1360 } |
1372 | 1361 |
1373 | 1362 |
1374 int FullCodeGenerator::TryCatch::Exit(int stack_depth) { | 1363 int FullCodeGenerator::TryCatch::Exit(int stack_depth) { |
1375 // The macros used here must preserve the result register. | 1364 // The macros used here must preserve the result register. |
1376 __ Drop(stack_depth); | 1365 __ Drop(stack_depth); |
1377 __ PopTryHandler(); | 1366 __ PopTryHandler(); |
1378 return 0; | 1367 return 0; |
1379 } | 1368 } |
1380 | 1369 |
1381 | 1370 |
1382 #undef __ | 1371 #undef __ |
1383 | 1372 |
1384 | 1373 |
1385 } } // namespace v8::internal | 1374 } } // namespace v8::internal |
OLD | NEW |