Skip to content

Commit

Permalink
working
Browse files Browse the repository at this point in the history
  • Loading branch information
ry committed Dec 20, 2019
1 parent 2230e29 commit e4660ce
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 20 deletions.
3 changes: 1 addition & 2 deletions src/isolate.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,7 @@ use crate::support::UniqueRef;
use crate::Local;
use crate::Value;

type MessageCallback =
extern "C" fn(Local<'_, Message>, Option<Local<'_, Value>>);
type MessageCallback = extern "C" fn(Local<'_, Message>, Local<'_, Value>);

type PromiseRejectCallback = extern "C" fn(PromiseRejectMessage);

Expand Down
33 changes: 15 additions & 18 deletions tests/test_api.rs
Original file line number Diff line number Diff line change
Expand Up @@ -115,33 +115,30 @@ fn isolate_add_message_listener() {

extern "C" fn check_message_0(
message: Local<'_, v8::Message>,
data: Option<Local<'_, v8::Value>>,
_exception: Local<'_, v8::Value>,
) {
CALL_COUNT.fetch_add(1, Ordering::SeqCst);
let isolate = message.get_isolate();
v8::HandleScope::enter(&isolate, |_s| {
let message_str = message.get();
assert_eq!(message_str.to_rust_string_lossy(&isolate), "error");
assert!(data.is_none());
assert_eq!(message_str.to_rust_string_lossy(&isolate), "Uncaught foo");
// assert!(data.is_none());
});
}
isolate.add_message_listener(check_message_0);

{
let locker = v8::Locker::new(&mut isolate);
v8::HandleScope::enter(&isolate, |_s| {
let mut context = v8::Context::new(&isolate);
context.enter();
let source =
v8::String::new(&isolate, "throw 'error'", Default::default()).unwrap();
let mut script = v8::Script::compile(context, source, None).unwrap();
assert!(script.run(context).is_none());
assert_eq!(CALL_COUNT.load(Ordering::SeqCst), 1);
context.exit();
});
drop(locker);
}

let locker = v8::Locker::new(&isolate);
v8::HandleScope::enter(&isolate, |_s| {
let mut context = v8::Context::new(&isolate);
context.enter();
let source =
v8::String::new(&isolate, "throw 'foo'", Default::default()).unwrap();
let mut script = v8::Script::compile(context, source, None).unwrap();
assert!(script.run(context).is_none());
assert_eq!(CALL_COUNT.load(Ordering::SeqCst), 1);
context.exit();
});
drop(locker);
drop(g);
}

Expand Down

0 comments on commit e4660ce

Please sign in to comment.