Skip to content

Commit

Permalink
wip
Browse files Browse the repository at this point in the history
  • Loading branch information
ry committed Dec 8, 2019
1 parent 7f4d108 commit 8f66fed
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 1 deletion.
11 changes: 11 additions & 0 deletions src/local.rs
Expand Up @@ -31,3 +31,14 @@ impl<'sc, T> DerefMut for Local<'sc, T> {
unsafe { self.0.as_mut() }
}
}

/// For example, to allow automated conversion from Local<String> to
/// Local<Value>
impl<'sc, T, U> From<Local<'sc, T>> for Local<'sc, U>
where
T: Deref<Target = U>,
{
fn from(v: Local<'sc, T>) -> Local<'sc, U> {
unsafe { std::mem::transmute(v) }
}
}
3 changes: 3 additions & 0 deletions src/script.cc
Expand Up @@ -6,6 +6,9 @@
using namespace v8;
using namespace support;

static_assert(sizeof(ScriptOrigin) == sizeof(size_t) * 7,
"ScriptOrigin size mismatch");

extern "C" {
Script* v8__Script__Compile(Context* context,
String* source,
Expand Down
2 changes: 1 addition & 1 deletion src/script.rs
Expand Up @@ -9,7 +9,7 @@ use crate::String;
use crate::Value;

#[repr(C)]
pub struct ScriptOrigin([usize; 3]);
pub struct ScriptOrigin([usize; 7]);

extern "C" {
fn v8__Script__Compile(
Expand Down
1 change: 1 addition & 0 deletions tests/test_api.rs
Expand Up @@ -150,6 +150,7 @@ fn script_origin() {

let resource_name =
v8::String::new(s, "foo.js", Default::default()).unwrap();

let script_origin = v8::ScriptOrigin::new(resource_name);

let source = v8::String::new(s, "1+2", Default::default()).unwrap();
Expand Down

0 comments on commit 8f66fed

Please sign in to comment.