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 | 9 |
10 #include "src/allocation.h" | 10 #include "src/allocation.h" |
(...skipping 7185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7196 public: | 7196 public: |
7197 // [function]: The function corresponding to this generator object. | 7197 // [function]: The function corresponding to this generator object. |
7198 DECL_ACCESSORS(function, JSFunction) | 7198 DECL_ACCESSORS(function, JSFunction) |
7199 | 7199 |
7200 // [context]: The context of the suspended computation. | 7200 // [context]: The context of the suspended computation. |
7201 DECL_ACCESSORS(context, Context) | 7201 DECL_ACCESSORS(context, Context) |
7202 | 7202 |
7203 // [receiver]: The receiver of the suspended computation. | 7203 // [receiver]: The receiver of the suspended computation. |
7204 DECL_ACCESSORS(receiver, Object) | 7204 DECL_ACCESSORS(receiver, Object) |
7205 | 7205 |
| 7206 // [input]: The most recent input value. |
| 7207 DECL_ACCESSORS(input, Object) |
| 7208 |
7206 // [continuation]: Offset into code of continuation. | 7209 // [continuation]: Offset into code of continuation. |
7207 // | 7210 // |
7208 // A positive offset indicates a suspended generator. The special | 7211 // A positive offset indicates a suspended generator. The special |
7209 // kGeneratorExecuting and kGeneratorClosed values indicate that a generator | 7212 // kGeneratorExecuting and kGeneratorClosed values indicate that a generator |
7210 // cannot be resumed. | 7213 // cannot be resumed. |
7211 inline int continuation() const; | 7214 inline int continuation() const; |
7212 inline void set_continuation(int continuation); | 7215 inline void set_continuation(int continuation); |
7213 inline bool is_closed(); | 7216 inline bool is_closed(); |
7214 inline bool is_executing(); | 7217 inline bool is_executing(); |
7215 inline bool is_suspended(); | 7218 inline bool is_suspended(); |
7216 | 7219 |
7217 // [operand_stack]: Saved operand stack. | 7220 // [operand_stack]: Saved operand stack. |
7218 DECL_ACCESSORS(operand_stack, FixedArray) | 7221 DECL_ACCESSORS(operand_stack, FixedArray) |
7219 | 7222 |
7220 DECLARE_CAST(JSGeneratorObject) | 7223 DECLARE_CAST(JSGeneratorObject) |
7221 | 7224 |
7222 // Dispatched behavior. | 7225 // Dispatched behavior. |
7223 DECLARE_PRINTER(JSGeneratorObject) | 7226 DECLARE_PRINTER(JSGeneratorObject) |
7224 DECLARE_VERIFIER(JSGeneratorObject) | 7227 DECLARE_VERIFIER(JSGeneratorObject) |
7225 | 7228 |
7226 // Magic sentinel values for the continuation. | 7229 // Magic sentinel values for the continuation. |
7227 static const int kGeneratorExecuting = -1; | 7230 static const int kGeneratorExecuting = -1; |
7228 static const int kGeneratorClosed = 0; | 7231 static const int kGeneratorClosed = 0; |
7229 | 7232 |
7230 // Layout description. | 7233 // Layout description. |
7231 static const int kFunctionOffset = JSObject::kHeaderSize; | 7234 static const int kFunctionOffset = JSObject::kHeaderSize; |
7232 static const int kContextOffset = kFunctionOffset + kPointerSize; | 7235 static const int kContextOffset = kFunctionOffset + kPointerSize; |
7233 static const int kReceiverOffset = kContextOffset + kPointerSize; | 7236 static const int kReceiverOffset = kContextOffset + kPointerSize; |
7234 static const int kContinuationOffset = kReceiverOffset + kPointerSize; | 7237 static const int kInputOffset = kReceiverOffset + kPointerSize; |
| 7238 static const int kContinuationOffset = kInputOffset + kPointerSize; |
7235 static const int kOperandStackOffset = kContinuationOffset + kPointerSize; | 7239 static const int kOperandStackOffset = kContinuationOffset + kPointerSize; |
7236 static const int kSize = kOperandStackOffset + kPointerSize; | 7240 static const int kSize = kOperandStackOffset + kPointerSize; |
7237 | 7241 |
7238 // Resume mode, for use by runtime functions. | 7242 // Resume mode, for use by runtime functions. |
7239 enum ResumeMode { NEXT, THROW }; | 7243 enum ResumeMode { NEXT, THROW }; |
7240 | 7244 |
7241 private: | 7245 private: |
7242 DISALLOW_IMPLICIT_CONSTRUCTORS(JSGeneratorObject); | 7246 DISALLOW_IMPLICIT_CONSTRUCTORS(JSGeneratorObject); |
7243 }; | 7247 }; |
7244 | 7248 |
(...skipping 3534 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10779 } | 10783 } |
10780 return value; | 10784 return value; |
10781 } | 10785 } |
10782 }; | 10786 }; |
10783 | 10787 |
10784 | 10788 |
10785 } // NOLINT, false-positive due to second-order macros. | 10789 } // NOLINT, false-positive due to second-order macros. |
10786 } // NOLINT, false-positive due to second-order macros. | 10790 } // NOLINT, false-positive due to second-order macros. |
10787 | 10791 |
10788 #endif // V8_OBJECTS_H_ | 10792 #endif // V8_OBJECTS_H_ |
OLD | NEW |