OLD | NEW |
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 4550 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4561 // exception or cause a re-throw to outside the code boundary. Since this is | 4561 // exception or cause a re-throw to outside the code boundary. Since this is |
4562 // undecidable it is merely an approximation (e.g. useful for debugger). | 4562 // undecidable it is merely an approximation (e.g. useful for debugger). |
4563 enum CatchPrediction { | 4563 enum CatchPrediction { |
4564 UNCAUGHT, // The handler will (likely) rethrow the exception. | 4564 UNCAUGHT, // The handler will (likely) rethrow the exception. |
4565 CAUGHT, // The exception will be caught by the handler. | 4565 CAUGHT, // The exception will be caught by the handler. |
4566 PROMISE, // The exception will be caught and cause a promise rejection. | 4566 PROMISE, // The exception will be caught and cause a promise rejection. |
4567 DESUGARING, // The exception will be caught, but both the exception and the | 4567 DESUGARING, // The exception will be caught, but both the exception and the |
4568 // catching are part of a desugaring and should therefore not | 4568 // catching are part of a desugaring and should therefore not |
4569 // be visible to the user (we won't notify the debugger of such | 4569 // be visible to the user (we won't notify the debugger of such |
4570 // exceptions). | 4570 // exceptions). |
| 4571 ASYNC_AWAIT, // The exception will be caught and cause a promise rejection |
| 4572 // in the desugaring of an async function, so special |
| 4573 // async/await handling in the debugger can take place. |
4571 }; | 4574 }; |
4572 | 4575 |
4573 // Getters for handler table based on ranges. | 4576 // Getters for handler table based on ranges. |
4574 inline int GetRangeStart(int index) const; | 4577 inline int GetRangeStart(int index) const; |
4575 inline int GetRangeEnd(int index) const; | 4578 inline int GetRangeEnd(int index) const; |
4576 inline int GetRangeHandler(int index) const; | 4579 inline int GetRangeHandler(int index) const; |
4577 inline int GetRangeData(int index) const; | 4580 inline int GetRangeData(int index) const; |
4578 | 4581 |
4579 // Setters for handler table based on ranges. | 4582 // Setters for handler table based on ranges. |
4580 inline void SetRangeStart(int index, int value); | 4583 inline void SetRangeStart(int index, int value); |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4613 static const int kRangeHandlerIndex = 2; | 4616 static const int kRangeHandlerIndex = 2; |
4614 static const int kRangeDataIndex = 3; | 4617 static const int kRangeDataIndex = 3; |
4615 static const int kRangeEntrySize = 4; | 4618 static const int kRangeEntrySize = 4; |
4616 | 4619 |
4617 // Layout description for handler table based on return addresses. | 4620 // Layout description for handler table based on return addresses. |
4618 static const int kReturnOffsetIndex = 0; | 4621 static const int kReturnOffsetIndex = 0; |
4619 static const int kReturnHandlerIndex = 1; | 4622 static const int kReturnHandlerIndex = 1; |
4620 static const int kReturnEntrySize = 2; | 4623 static const int kReturnEntrySize = 2; |
4621 | 4624 |
4622 // Encoding of the {handler} field. | 4625 // Encoding of the {handler} field. |
4623 class HandlerPredictionField : public BitField<CatchPrediction, 0, 2> {}; | 4626 class HandlerPredictionField : public BitField<CatchPrediction, 0, 3> {}; |
4624 class HandlerOffsetField : public BitField<int, 2, 30> {}; | 4627 class HandlerOffsetField : public BitField<int, 3, 29> {}; |
4625 }; | 4628 }; |
4626 | 4629 |
4627 // ByteArray represents fixed sized byte arrays. Used for the relocation info | 4630 // ByteArray represents fixed sized byte arrays. Used for the relocation info |
4628 // that is attached to code objects. | 4631 // that is attached to code objects. |
4629 class ByteArray: public FixedArrayBase { | 4632 class ByteArray: public FixedArrayBase { |
4630 public: | 4633 public: |
4631 inline int Size(); | 4634 inline int Size(); |
4632 | 4635 |
4633 // Setter and getter. | 4636 // Setter and getter. |
4634 inline byte get(int index); | 4637 inline byte get(int index); |
(...skipping 6545 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11180 } | 11183 } |
11181 return value; | 11184 return value; |
11182 } | 11185 } |
11183 }; | 11186 }; |
11184 | 11187 |
11185 | 11188 |
11186 } // NOLINT, false-positive due to second-order macros. | 11189 } // NOLINT, false-positive due to second-order macros. |
11187 } // NOLINT, false-positive due to second-order macros. | 11190 } // NOLINT, false-positive due to second-order macros. |
11188 | 11191 |
11189 #endif // V8_OBJECTS_H_ | 11192 #endif // V8_OBJECTS_H_ |
OLD | NEW |