| 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 2679 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2690 static void CheckCast(Value* obj); | 2690 static void CheckCast(Value* obj); |
| 2691 }; | 2691 }; |
| 2692 | 2692 |
| 2693 | 2693 |
| 2694 /** | 2694 /** |
| 2695 * An instance of the built-in Promise constructor (ES6 draft). | 2695 * An instance of the built-in Promise constructor (ES6 draft). |
| 2696 * This API is experimental. Only works with --harmony flag. | 2696 * This API is experimental. Only works with --harmony flag. |
| 2697 */ | 2697 */ |
| 2698 class V8_EXPORT Promise : public Object { | 2698 class V8_EXPORT Promise : public Object { |
| 2699 public: | 2699 public: |
| 2700 /** | 2700 class V8_EXPORT Resolver : public Object { |
| 2701 * Create a new Promise in pending state. | 2701 public: |
| 2702 */ | 2702 /** |
| 2703 static Local<Promise> New(Isolate* isolate); | 2703 * Create a new resolver, along with an associated promise in pending state. |
| 2704 */ |
| 2705 static Local<Resolver> New(Isolate* isolate); |
| 2704 | 2706 |
| 2705 /** | 2707 /** |
| 2706 * Resolve/reject a promise with a given value. | 2708 * Extract the associated promise. |
| 2707 * Ignored if the promise is not unresolved. | 2709 */ |
| 2708 */ | 2710 Local<Promise> GetPromise(); |
| 2709 void Resolve(Handle<Value> value); | 2711 |
| 2710 void Reject(Handle<Value> value); | 2712 /** |
| 2713 * Resolve/reject the associated promise with a given value. |
| 2714 * Ignored if the promise is no longer pending. |
| 2715 */ |
| 2716 void Resolve(Handle<Value> value); |
| 2717 void Reject(Handle<Value> value); |
| 2718 |
| 2719 V8_INLINE static Resolver* Cast(Value* obj); |
| 2720 |
| 2721 private: |
| 2722 Resolver(); |
| 2723 static void CheckCast(Value* obj); |
| 2724 }; |
| 2711 | 2725 |
| 2712 /** | 2726 /** |
| 2713 * Register a resolution/rejection handler with a promise. | 2727 * Register a resolution/rejection handler with a promise. |
| 2714 * The handler is given the respective resolution/rejection value as | 2728 * The handler is given the respective resolution/rejection value as |
| 2715 * an argument. If the promise is already resolved/rejected, the handler is | 2729 * an argument. If the promise is already resolved/rejected, the handler is |
| 2716 * invoked at the end of turn. | 2730 * invoked at the end of turn. |
| 2717 */ | 2731 */ |
| 2718 Local<Promise> Chain(Handle<Function> handler); | 2732 Local<Promise> Chain(Handle<Function> handler); |
| 2719 Local<Promise> Catch(Handle<Function> handler); | 2733 Local<Promise> Catch(Handle<Function> handler); |
| 2720 | 2734 |
| (...skipping 3701 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6422 | 6436 |
| 6423 | 6437 |
| 6424 Promise* Promise::Cast(v8::Value* value) { | 6438 Promise* Promise::Cast(v8::Value* value) { |
| 6425 #ifdef V8_ENABLE_CHECKS | 6439 #ifdef V8_ENABLE_CHECKS |
| 6426 CheckCast(value); | 6440 CheckCast(value); |
| 6427 #endif | 6441 #endif |
| 6428 return static_cast<Promise*>(value); | 6442 return static_cast<Promise*>(value); |
| 6429 } | 6443 } |
| 6430 | 6444 |
| 6431 | 6445 |
| 6446 Promise::Resolver* Promise::Resolver::Cast(v8::Value* value) { |
| 6447 #ifdef V8_ENABLE_CHECKS |
| 6448 CheckCast(value); |
| 6449 #endif |
| 6450 return static_cast<Promise::Resolver*>(value); |
| 6451 } |
| 6452 |
| 6453 |
| 6432 ArrayBuffer* ArrayBuffer::Cast(v8::Value* value) { | 6454 ArrayBuffer* ArrayBuffer::Cast(v8::Value* value) { |
| 6433 #ifdef V8_ENABLE_CHECKS | 6455 #ifdef V8_ENABLE_CHECKS |
| 6434 CheckCast(value); | 6456 CheckCast(value); |
| 6435 #endif | 6457 #endif |
| 6436 return static_cast<ArrayBuffer*>(value); | 6458 return static_cast<ArrayBuffer*>(value); |
| 6437 } | 6459 } |
| 6438 | 6460 |
| 6439 | 6461 |
| 6440 ArrayBufferView* ArrayBufferView::Cast(v8::Value* value) { | 6462 ArrayBufferView* ArrayBufferView::Cast(v8::Value* value) { |
| 6441 #ifdef V8_ENABLE_CHECKS | 6463 #ifdef V8_ENABLE_CHECKS |
| (...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6697 */ | 6719 */ |
| 6698 | 6720 |
| 6699 | 6721 |
| 6700 } // namespace v8 | 6722 } // namespace v8 |
| 6701 | 6723 |
| 6702 | 6724 |
| 6703 #undef TYPE_CHECK | 6725 #undef TYPE_CHECK |
| 6704 | 6726 |
| 6705 | 6727 |
| 6706 #endif // V8_H_ | 6728 #endif // V8_H_ |
| OLD | NEW |