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

Side by Side Diff: src/objects.h

Issue 2276243002: Mark await expressions as caught or uncaught (Closed)
Patch Set: Revert "Tests for caught exception" Created 4 years, 3 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 | « src/js/promise.js ('k') | src/parsing/parser.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 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_OBJECTS_H_ 5 #ifndef V8_OBJECTS_H_
6 #define V8_OBJECTS_H_ 6 #define V8_OBJECTS_H_
7 7
8 #include <iosfwd> 8 #include <iosfwd>
9 #include <memory> 9 #include <memory>
10 10
(...skipping 4607 matching lines...) Expand 10 before | Expand all | Expand 10 after
4618 // exception or cause a re-throw to outside the code boundary. Since this is 4618 // exception or cause a re-throw to outside the code boundary. Since this is
4619 // undecidable it is merely an approximation (e.g. useful for debugger). 4619 // undecidable it is merely an approximation (e.g. useful for debugger).
4620 enum CatchPrediction { 4620 enum CatchPrediction {
4621 UNCAUGHT, // The handler will (likely) rethrow the exception. 4621 UNCAUGHT, // The handler will (likely) rethrow the exception.
4622 CAUGHT, // The exception will be caught by the handler. 4622 CAUGHT, // The exception will be caught by the handler.
4623 PROMISE, // The exception will be caught and cause a promise rejection. 4623 PROMISE, // The exception will be caught and cause a promise rejection.
4624 DESUGARING, // The exception will be caught, but both the exception and the 4624 DESUGARING, // The exception will be caught, but both the exception and the
4625 // catching are part of a desugaring and should therefore not 4625 // catching are part of a desugaring and should therefore not
4626 // be visible to the user (we won't notify the debugger of such 4626 // be visible to the user (we won't notify the debugger of such
4627 // exceptions). 4627 // exceptions).
4628 ASYNC_AWAIT, // The exception will be caught and cause a promise rejection
4629 // in the desugaring of an async function, so special
4630 // async/await handling in the debugger can take place.
4628 }; 4631 };
4629 4632
4630 // Getters for handler table based on ranges. 4633 // Getters for handler table based on ranges.
4631 inline int GetRangeStart(int index) const; 4634 inline int GetRangeStart(int index) const;
4632 inline int GetRangeEnd(int index) const; 4635 inline int GetRangeEnd(int index) const;
4633 inline int GetRangeHandler(int index) const; 4636 inline int GetRangeHandler(int index) const;
4634 inline int GetRangeData(int index) const; 4637 inline int GetRangeData(int index) const;
4635 4638
4636 // Setters for handler table based on ranges. 4639 // Setters for handler table based on ranges.
4637 inline void SetRangeStart(int index, int value); 4640 inline void SetRangeStart(int index, int value);
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
4670 static const int kRangeHandlerIndex = 2; 4673 static const int kRangeHandlerIndex = 2;
4671 static const int kRangeDataIndex = 3; 4674 static const int kRangeDataIndex = 3;
4672 static const int kRangeEntrySize = 4; 4675 static const int kRangeEntrySize = 4;
4673 4676
4674 // Layout description for handler table based on return addresses. 4677 // Layout description for handler table based on return addresses.
4675 static const int kReturnOffsetIndex = 0; 4678 static const int kReturnOffsetIndex = 0;
4676 static const int kReturnHandlerIndex = 1; 4679 static const int kReturnHandlerIndex = 1;
4677 static const int kReturnEntrySize = 2; 4680 static const int kReturnEntrySize = 2;
4678 4681
4679 // Encoding of the {handler} field. 4682 // Encoding of the {handler} field.
4680 class HandlerPredictionField : public BitField<CatchPrediction, 0, 2> {}; 4683 class HandlerPredictionField : public BitField<CatchPrediction, 0, 3> {};
4681 class HandlerOffsetField : public BitField<int, 2, 30> {}; 4684 class HandlerOffsetField : public BitField<int, 3, 29> {};
4682 }; 4685 };
4683 4686
4684 // ByteArray represents fixed sized byte arrays. Used for the relocation info 4687 // ByteArray represents fixed sized byte arrays. Used for the relocation info
4685 // that is attached to code objects. 4688 // that is attached to code objects.
4686 class ByteArray: public FixedArrayBase { 4689 class ByteArray: public FixedArrayBase {
4687 public: 4690 public:
4688 inline int Size(); 4691 inline int Size();
4689 4692
4690 // Setter and getter. 4693 // Setter and getter.
4691 inline byte get(int index); 4694 inline byte get(int index);
(...skipping 6578 matching lines...) Expand 10 before | Expand all | Expand 10 after
11270 } 11273 }
11271 return value; 11274 return value;
11272 } 11275 }
11273 }; 11276 };
11274 11277
11275 11278
11276 } // NOLINT, false-positive due to second-order macros. 11279 } // NOLINT, false-positive due to second-order macros.
11277 } // NOLINT, false-positive due to second-order macros. 11280 } // NOLINT, false-positive due to second-order macros.
11278 11281
11279 #endif // V8_OBJECTS_H_ 11282 #endif // V8_OBJECTS_H_
OLDNEW
« no previous file with comments | « src/js/promise.js ('k') | src/parsing/parser.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698