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

Side by Side Diff: src/ast/ast.h

Issue 2124813002: [debugger] omit exception events for rethrown exceptions in async. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: addressed comments Created 4 years, 5 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
« no previous file with comments | « no previous file | src/full-codegen/arm/full-codegen-arm.cc » ('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_AST_AST_H_ 5 #ifndef V8_AST_AST_H_
6 #define V8_AST_AST_H_ 6 #define V8_AST_AST_H_
7 7
8 #include "src/ast/ast-value-factory.h" 8 #include "src/ast/ast-value-factory.h"
9 #include "src/ast/modules.h" 9 #include "src/ast/modules.h"
10 #include "src/ast/variables.h" 10 #include "src/ast/variables.h"
(...skipping 2493 matching lines...) Expand 10 before | Expand all | Expand 10 after
2504 Expression* expr_; 2504 Expression* expr_;
2505 }; 2505 };
2506 2506
2507 // Our Yield is different from the JS yield in that it "returns" its argument as 2507 // Our Yield is different from the JS yield in that it "returns" its argument as
2508 // is, without wrapping it in an iterator result object. Such wrapping, if 2508 // is, without wrapping it in an iterator result object. Such wrapping, if
2509 // desired, must be done beforehand (see the parser). 2509 // desired, must be done beforehand (see the parser).
2510 class Yield final : public Expression { 2510 class Yield final : public Expression {
2511 public: 2511 public:
2512 DECLARE_NODE_TYPE(Yield) 2512 DECLARE_NODE_TYPE(Yield)
2513 2513
2514 enum OnException { kOnExceptionThrow, kOnExceptionRethrow };
2515
2514 Expression* generator_object() const { return generator_object_; } 2516 Expression* generator_object() const { return generator_object_; }
2515 Expression* expression() const { return expression_; } 2517 Expression* expression() const { return expression_; }
2518 bool rethrow_on_exception() const {
2519 return on_exception_ == kOnExceptionRethrow;
2520 }
2516 int yield_id() const { return yield_id_; } 2521 int yield_id() const { return yield_id_; }
2517 2522
2518 void set_generator_object(Expression* e) { generator_object_ = e; } 2523 void set_generator_object(Expression* e) { generator_object_ = e; }
2519 void set_expression(Expression* e) { expression_ = e; } 2524 void set_expression(Expression* e) { expression_ = e; }
2520 void set_yield_id(int yield_id) { yield_id_ = yield_id; } 2525 void set_yield_id(int yield_id) { yield_id_ = yield_id; }
2521 2526
2522 protected: 2527 protected:
2523 Yield(Zone* zone, Expression* generator_object, Expression* expression, 2528 Yield(Zone* zone, Expression* generator_object, Expression* expression,
2524 int pos) 2529 int pos, OnException on_exception)
2525 : Expression(zone, pos), 2530 : Expression(zone, pos),
2526 generator_object_(generator_object), 2531 generator_object_(generator_object),
2527 expression_(expression), 2532 expression_(expression),
2533 on_exception_(on_exception),
2528 yield_id_(-1) {} 2534 yield_id_(-1) {}
2529 2535
2530 private: 2536 private:
2531 Expression* generator_object_; 2537 Expression* generator_object_;
2532 Expression* expression_; 2538 Expression* expression_;
2539 OnException on_exception_;
2533 int yield_id_; 2540 int yield_id_;
2534 }; 2541 };
2535 2542
2536 2543
2537 class Throw final : public Expression { 2544 class Throw final : public Expression {
2538 public: 2545 public:
2539 DECLARE_NODE_TYPE(Throw) 2546 DECLARE_NODE_TYPE(Throw)
2540 2547
2541 Expression* exception() const { return exception_; } 2548 Expression* exception() const { return exception_; }
2542 void set_exception(Expression* e) { exception_ = e; } 2549 void set_exception(Expression* e) { exception_ = e; }
(...skipping 849 matching lines...) Expand 10 before | Expand all | Expand 10 after
3392 Assignment* assign = 3399 Assignment* assign =
3393 new (local_zone_) Assignment(local_zone_, op, target, value, pos); 3400 new (local_zone_) Assignment(local_zone_, op, target, value, pos);
3394 if (assign->is_compound()) { 3401 if (assign->is_compound()) {
3395 DCHECK(Token::IsAssignmentOp(op)); 3402 DCHECK(Token::IsAssignmentOp(op));
3396 assign->binary_operation_ = 3403 assign->binary_operation_ =
3397 NewBinaryOperation(assign->binary_op(), target, value, pos + 1); 3404 NewBinaryOperation(assign->binary_op(), target, value, pos + 1);
3398 } 3405 }
3399 return assign; 3406 return assign;
3400 } 3407 }
3401 3408
3402 Yield* NewYield(Expression *generator_object, 3409 Yield* NewYield(Expression* generator_object, Expression* expression, int pos,
3403 Expression* expression, 3410 Yield::OnException on_exception) {
3404 int pos) {
3405 if (!expression) expression = NewUndefinedLiteral(pos); 3411 if (!expression) expression = NewUndefinedLiteral(pos);
3406 return new (local_zone_) 3412 return new (local_zone_)
3407 Yield(local_zone_, generator_object, expression, pos); 3413 Yield(local_zone_, generator_object, expression, pos, on_exception);
3408 } 3414 }
3409 3415
3410 Throw* NewThrow(Expression* exception, int pos) { 3416 Throw* NewThrow(Expression* exception, int pos) {
3411 return new (local_zone_) Throw(local_zone_, exception, pos); 3417 return new (local_zone_) Throw(local_zone_, exception, pos);
3412 } 3418 }
3413 3419
3414 FunctionLiteral* NewFunctionLiteral( 3420 FunctionLiteral* NewFunctionLiteral(
3415 const AstRawString* name, Scope* scope, ZoneList<Statement*>* body, 3421 const AstRawString* name, Scope* scope, ZoneList<Statement*>* body,
3416 int materialized_literal_count, int expected_property_count, 3422 int materialized_literal_count, int expected_property_count,
3417 int parameter_count, 3423 int parameter_count,
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
3555 : NULL; \ 3561 : NULL; \
3556 } 3562 }
3557 AST_NODE_LIST(DECLARE_NODE_FUNCTIONS) 3563 AST_NODE_LIST(DECLARE_NODE_FUNCTIONS)
3558 #undef DECLARE_NODE_FUNCTIONS 3564 #undef DECLARE_NODE_FUNCTIONS
3559 3565
3560 3566
3561 } // namespace internal 3567 } // namespace internal
3562 } // namespace v8 3568 } // namespace v8
3563 3569
3564 #endif // V8_AST_AST_H_ 3570 #endif // V8_AST_AST_H_
OLDNEW
« no previous file with comments | « no previous file | src/full-codegen/arm/full-codegen-arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698