OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 6392 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6403 DECL_ACCESSORS(receiver, Object) | 6403 DECL_ACCESSORS(receiver, Object) |
6404 | 6404 |
6405 // [continuation]: Offset into code of continuation. | 6405 // [continuation]: Offset into code of continuation. |
6406 // | 6406 // |
6407 // A positive offset indicates a suspended generator. The special | 6407 // A positive offset indicates a suspended generator. The special |
6408 // kGeneratorExecuting and kGeneratorClosed values indicate that a generator | 6408 // kGeneratorExecuting and kGeneratorClosed values indicate that a generator |
6409 // cannot be resumed. | 6409 // cannot be resumed. |
6410 inline int continuation(); | 6410 inline int continuation(); |
6411 inline void set_continuation(int continuation); | 6411 inline void set_continuation(int continuation); |
6412 | 6412 |
6413 // [operands]: Saved operand stack. | 6413 // [operand_stack]: Saved operand stack. |
6414 DECL_ACCESSORS(operand_stack, FixedArray) | 6414 DECL_ACCESSORS(operand_stack, FixedArray) |
6415 | 6415 |
| 6416 // [stack_handler_index]: Index of first stack handler in operand_stack, or -1 |
| 6417 // if the captured activation had no stack handler. |
| 6418 inline int stack_handler_index(); |
| 6419 inline void set_stack_handler_index(int stack_handler_index); |
| 6420 |
6416 // Casting. | 6421 // Casting. |
6417 static inline JSGeneratorObject* cast(Object* obj); | 6422 static inline JSGeneratorObject* cast(Object* obj); |
6418 | 6423 |
6419 // Dispatched behavior. | 6424 // Dispatched behavior. |
6420 DECLARE_PRINTER(JSGeneratorObject) | 6425 DECLARE_PRINTER(JSGeneratorObject) |
6421 DECLARE_VERIFIER(JSGeneratorObject) | 6426 DECLARE_VERIFIER(JSGeneratorObject) |
6422 | 6427 |
6423 // Magic sentinel values for the continuation. | 6428 // Magic sentinel values for the continuation. |
6424 static const int kGeneratorExecuting = -1; | 6429 static const int kGeneratorExecuting = -1; |
6425 static const int kGeneratorClosed = 0; | 6430 static const int kGeneratorClosed = 0; |
6426 | 6431 |
6427 // Layout description. | 6432 // Layout description. |
6428 static const int kFunctionOffset = JSObject::kHeaderSize; | 6433 static const int kFunctionOffset = JSObject::kHeaderSize; |
6429 static const int kContextOffset = kFunctionOffset + kPointerSize; | 6434 static const int kContextOffset = kFunctionOffset + kPointerSize; |
6430 static const int kReceiverOffset = kContextOffset + kPointerSize; | 6435 static const int kReceiverOffset = kContextOffset + kPointerSize; |
6431 static const int kContinuationOffset = kReceiverOffset + kPointerSize; | 6436 static const int kContinuationOffset = kReceiverOffset + kPointerSize; |
6432 static const int kOperandStackOffset = kContinuationOffset + kPointerSize; | 6437 static const int kOperandStackOffset = kContinuationOffset + kPointerSize; |
6433 static const int kSize = kOperandStackOffset + kPointerSize; | 6438 static const int kStackHandlerIndexOffset = |
| 6439 kOperandStackOffset + kPointerSize; |
| 6440 static const int kSize = kStackHandlerIndexOffset + kPointerSize; |
6434 | 6441 |
6435 // Resume mode, for use by runtime functions. | 6442 // Resume mode, for use by runtime functions. |
6436 enum ResumeMode { SEND, THROW }; | 6443 enum ResumeMode { SEND, THROW }; |
6437 | 6444 |
6438 // Yielding from a generator returns an object with the following inobject | 6445 // Yielding from a generator returns an object with the following inobject |
6439 // properties. See Context::generator_result_map() for the map. | 6446 // properties. See Context::generator_result_map() for the map. |
6440 static const int kResultValuePropertyIndex = 0; | 6447 static const int kResultValuePropertyIndex = 0; |
6441 static const int kResultDonePropertyIndex = 1; | 6448 static const int kResultDonePropertyIndex = 1; |
6442 static const int kResultPropertyCount = 2; | 6449 static const int kResultPropertyCount = 2; |
6443 | 6450 |
(...skipping 3107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9551 } else { | 9558 } else { |
9552 value &= ~(1 << bit_position); | 9559 value &= ~(1 << bit_position); |
9553 } | 9560 } |
9554 return value; | 9561 return value; |
9555 } | 9562 } |
9556 }; | 9563 }; |
9557 | 9564 |
9558 } } // namespace v8::internal | 9565 } } // namespace v8::internal |
9559 | 9566 |
9560 #endif // V8_OBJECTS_H_ | 9567 #endif // V8_OBJECTS_H_ |
OLD | NEW |