OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 #include "src/api.h" | 5 #include "src/api.h" |
6 | 6 |
7 #include <string.h> // For memcpy, strlen. | 7 #include <string.h> // For memcpy, strlen. |
8 #ifdef V8_USE_ADDRESS_SANITIZER | 8 #ifdef V8_USE_ADDRESS_SANITIZER |
9 #include <sanitizer/asan_interface.h> | 9 #include <sanitizer/asan_interface.h> |
10 #endif // V8_USE_ADDRESS_SANITIZER | 10 #endif // V8_USE_ADDRESS_SANITIZER |
(...skipping 7271 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7282 i::Isolate* isolate = promise->GetIsolate(); | 7282 i::Isolate* isolate = promise->GetIsolate(); |
7283 LOG_API(isolate, Promise, HasRejectHandler); | 7283 LOG_API(isolate, Promise, HasRejectHandler); |
7284 ENTER_V8(isolate); | 7284 ENTER_V8(isolate); |
7285 if (promise->IsJSPromise()) { | 7285 if (promise->IsJSPromise()) { |
7286 i::Handle<i::JSPromise> js_promise = i::Handle<i::JSPromise>::cast(promise); | 7286 i::Handle<i::JSPromise> js_promise = i::Handle<i::JSPromise>::cast(promise); |
7287 return js_promise->has_handler(); | 7287 return js_promise->has_handler(); |
7288 } | 7288 } |
7289 return false; | 7289 return false; |
7290 } | 7290 } |
7291 | 7291 |
| 7292 Local<Value> Promise::Result() { |
| 7293 i::Handle<i::JSReceiver> promise = Utils::OpenHandle(this); |
| 7294 i::Isolate* isolate = promise->GetIsolate(); |
| 7295 LOG_API(isolate, Promise, Result); |
| 7296 i::Handle<i::JSPromise> js_promise = i::Handle<i::JSPromise>::cast(promise); |
| 7297 Utils::ApiCheck(js_promise->status() != kPending, "v8_Promise_Result", |
| 7298 "Promise is still pending"); |
| 7299 i::Handle<i::Object> result(js_promise->result(), isolate); |
| 7300 return Utils::ToLocal(result); |
| 7301 } |
| 7302 |
| 7303 Promise::PromiseState Promise::State() { |
| 7304 i::Handle<i::JSReceiver> promise = Utils::OpenHandle(this); |
| 7305 i::Isolate* isolate = promise->GetIsolate(); |
| 7306 LOG_API(isolate, Promise, Status); |
| 7307 i::Handle<i::JSPromise> js_promise = i::Handle<i::JSPromise>::cast(promise); |
| 7308 return static_cast<PromiseState>(js_promise->status()); |
| 7309 } |
7292 | 7310 |
7293 Local<Object> Proxy::GetTarget() { | 7311 Local<Object> Proxy::GetTarget() { |
7294 i::Handle<i::JSProxy> self = Utils::OpenHandle(this); | 7312 i::Handle<i::JSProxy> self = Utils::OpenHandle(this); |
7295 i::Handle<i::JSReceiver> target(self->target()); | 7313 i::Handle<i::JSReceiver> target(self->target()); |
7296 return Utils::ToLocal(target); | 7314 return Utils::ToLocal(target); |
7297 } | 7315 } |
7298 | 7316 |
7299 | 7317 |
7300 Local<Value> Proxy::GetHandler() { | 7318 Local<Value> Proxy::GetHandler() { |
7301 i::Handle<i::JSProxy> self = Utils::OpenHandle(this); | 7319 i::Handle<i::JSProxy> self = Utils::OpenHandle(this); |
(...skipping 2602 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9904 Address callback_address = | 9922 Address callback_address = |
9905 reinterpret_cast<Address>(reinterpret_cast<intptr_t>(callback)); | 9923 reinterpret_cast<Address>(reinterpret_cast<intptr_t>(callback)); |
9906 VMState<EXTERNAL> state(isolate); | 9924 VMState<EXTERNAL> state(isolate); |
9907 ExternalCallbackScope call_scope(isolate, callback_address); | 9925 ExternalCallbackScope call_scope(isolate, callback_address); |
9908 callback(info); | 9926 callback(info); |
9909 } | 9927 } |
9910 | 9928 |
9911 | 9929 |
9912 } // namespace internal | 9930 } // namespace internal |
9913 } // namespace v8 | 9931 } // namespace v8 |
OLD | NEW |