diff options
author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2020-11-11 23:11:40 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-11 23:11:40 +0100 |
commit | d4c8fa263d44aaafe400a130a52b88f42f738e8d (patch) | |
tree | fe40668fda84fd3c3d22d7b6323fc03bd267dff8 /core/bindings.rs | |
parent | c744ee2756d9cd812d47650fae52ef855cea9e53 (diff) |
refactor(core): don't depend on get_identity_hash for promises (#8352)
This commit changes how pending promise exceptions are stored
in JsRuntime by using global handle to promise instead of its
identity hash.
Diffstat (limited to 'core/bindings.rs')
-rw-r--r-- | core/bindings.rs | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/core/bindings.rs b/core/bindings.rs index 47dadf422..acf79a36e 100644 --- a/core/bindings.rs +++ b/core/bindings.rs @@ -285,7 +285,7 @@ pub extern "C" fn promise_reject_callback(message: v8::PromiseRejectMessage) { let mut state = state_rc.borrow_mut(); let promise = message.get_promise(); - let promise_id = promise.get_identity_hash(); + let promise_global = v8::Global::new(scope, promise); match message.get_event() { v8::PromiseRejectEvent::PromiseRejectWithNoHandler => { @@ -293,10 +293,10 @@ pub extern "C" fn promise_reject_callback(message: v8::PromiseRejectMessage) { let error_global = v8::Global::new(scope, error); state .pending_promise_exceptions - .insert(promise_id, error_global); + .insert(promise_global, error_global); } v8::PromiseRejectEvent::PromiseHandlerAddedAfterReject => { - state.pending_promise_exceptions.remove(&promise_id); + state.pending_promise_exceptions.remove(&promise_global); } v8::PromiseRejectEvent::PromiseRejectAfterResolved => {} v8::PromiseRejectEvent::PromiseResolveAfterResolved => { |